понавтыкай в разные места MsgBox - и смотри где сработает, а где нет, а еще надо значения проверить для этого делай типа MsgBox (Range("D20").Value). Макрос3 и Макрос7 тож надо проверить - я считаю что в них чтото. Образец смотрел уж больно что то все намудрено - разбираться не стал
» Excel VBA (часть 2)
Вот е-мое. Нашел))Оказывается End if не поставил после события. Зато оно случайно стояло как лишнее после всех событитй, потому VBA и не показывал ошибку, а значение глючило)))
Подскажите, как задать в макрос такое.
Если A1 = "слово"
A2 = формуле: (A3*5/7))
Спасибо
Подскажите, как задать в макрос такое.
Если A1 = "слово"
A2 = формуле: (A3*5/7))
Спасибо
Pravoved90
If LCase(Range("A1").Value)=LCase("слово") Then Range("A2").FormulaLocal="=A3*5/7"
If LCase(Range("A1").Value)=LCase("слово") Then Range("A2").FormulaLocal="=A3*5/7"
Oyger
Благодарю за ответ. Так и есть))
Подскажите, как сделать в макросе примерно такое:
Если A1 = "слово", к цифре в A2 прибавляется 1.
Благодарю за ответ. Так и есть))
Подскажите, как сделать в макросе примерно такое:
Если A1 = "слово", к цифре в A2 прибавляется 1.
Добрый вечер!
Подскажите, пожалуйста, как в сводной таблице оставиьь в поле только
один элемент (Перебирать все элементв и ставить
pvt.pivotfield(1).pivotitem(i).visible = false для всех i кроме нужного
не очень-то хочется, так как слишком много элементов и каждый раз
обращаться к списку не хочется)
Подскажите, пожалуйста, как в сводной таблице оставиьь в поле только
один элемент (Перебирать все элементв и ставить
pvt.pivotfield(1).pivotitem(i).visible = false для всех i кроме нужного
не очень-то хочется, так как слишком много элементов и каждый раз
обращаться к списку не хочется)
Добрый день, Господа. Подскажите, будьте любезны, как саписать в макрос примерно такое:
Если Ячейка A1 = "слово", к цифре в значении A2 прибавляется 1.
Спасибо
Если Ячейка A1 = "слово", к цифре в значении A2 прибавляется 1.
Спасибо
Сделал временный вариант:
Например, надо увеличить на 1 цифру в ячейке A1. Создаю макрос: Значение A1 копировать в B1. В A1 пишу формулу B1+1. Тогда при выполнении макроса получаю результат.
Но мне этот вариант кажеться немного безумным)). подскажите, если знаете лучший способ.
Например, надо увеличить на 1 цифру в ячейке A1. Создаю макрос: Значение A1 копировать в B1. В A1 пишу формулу B1+1. Тогда при выполнении макроса получаю результат.
Но мне этот вариант кажеться немного безумным)). подскажите, если знаете лучший способ.
Добрый день!
Подскажите пожалуйста следующий вопрос:
Есть ряд ячеек со значениями... мне нужно вытянуть эти значения в массив, и потом просматреть каждое значение на предмет запрещенных символов(для имени книг, листов и т.д.)... Что интрересует, как найти этот символ и как его заменить?..
Например range(1, 1).value = "привет/привет"
a = range(1, 1).value, теперь надо просматреть есть ли в значении символ "/", если да то заменить его на "-" например... значение ячейки менять нельзя, то-есть изменения только в самой программе... Спасибо за помощь!
Подскажите пожалуйста следующий вопрос:
Есть ряд ячеек со значениями... мне нужно вытянуть эти значения в массив, и потом просматреть каждое значение на предмет запрещенных символов(для имени книг, листов и т.д.)... Что интрересует, как найти этот символ и как его заменить?..
Например range(1, 1).value = "привет/привет"
a = range(1, 1).value, теперь надо просматреть есть ли в значении символ "/", если да то заменить его на "-" например... значение ячейки менять нельзя, то-есть изменения только в самой программе... Спасибо за помощь!
Pravoved90
If Range("A1").Value = "слово" Then Range("A2").Value = Range("A2").Value + 1
Добавлено:
MaximuS G чем не устраивают обычные формулы? PS значения исходных ячеек останутся не тронутыми
If Range("A1").Value = "слово" Then Range("A2").Value = Range("A2").Value + 1
Добавлено:
MaximuS G чем не устраивают обычные формулы? PS значения исходных ячеек останутся не тронутыми
MaximuS G
Используй функцию Replace
Используй функцию Replace
q1wed
Огромное спасибо))Все работает как надо))
Огромное спасибо))Все работает как надо))
очень срочно надо вот такой макрос:
есть лист экселя с колонками: е-мейл сотрудников (совпадает с именем), оборудование, с какой даты взято, когда обещали вернуть (эти самые сотрудники).
надо макрос, который бы при исполнении проверял текущую дату с датой возврата. если дата просрочена, то автоматически отправлял бы письмо этому сотруднику с наименованием этого оборудования, текущей датой и датой возврата.
да, у нас используется ексчейндж сервер для почты, поэтому настройки там менять нельзя.
заранее спасибо!
есть лист экселя с колонками: е-мейл сотрудников (совпадает с именем), оборудование, с какой даты взято, когда обещали вернуть (эти самые сотрудники).
надо макрос, который бы при исполнении проверял текущую дату с датой возврата. если дата просрочена, то автоматически отправлял бы письмо этому сотруднику с наименованием этого оборудования, текущей датой и датой возврата.
да, у нас используется ексчейндж сервер для почты, поэтому настройки там менять нельзя.
заранее спасибо!
q1wed
Цитата:
dneprcomp
Цитата:
можна по подробней... ниже привел пример...схематично
For i = 1 to 4
arr(i) = sheets("1").cells(i , 3).value
next i
For i = 1 to 4
If в значении arr(i) есть елемент "/" then
символ "/" заменить на "-"
оставить в массиве под тем же номером
Else
Рассматрюем дальше
Next
Цитата:
чем не устраивают обычные формулы? PS значения исходных ячеек останутся не тронутыми
dneprcomp
Цитата:
Используй функцию Replace
можна по подробней... ниже привел пример...схематично
For i = 1 to 4
arr(i) = sheets("1").cells(i , 3).value
next i
For i = 1 to 4
If в значении arr(i) есть елемент "/" then
символ "/" заменить на "-"
оставить в массиве под тем же номером
Else
Рассматрюем дальше
Next
Добрый день господа. Помогите разобраться с таким действом. Вроде простая задачка, но немного запутался:
Есть список из, допустим, 10 значений. К каждому из них привязаны несколько своих макросов, которые в свою очередь зависят от слова в ячейке.
Задача состоит в следующем: После того, как я введу все необходимые значения в ячейки, двойным кликом по специально для этого созданной ячейке А1, запустить макросы для всех значений (естественно в соответствии с написанными в них словами).
Запутался в самих расстановках If. Если несложно напишите примитивный пример типа: Если дв.клик по А1 - выполнить макрос1(если В1 = "слово"), выполнить макрос2(если B1 = "слово2"), выполнить макрос3(если С1 = "слово3"),выполнить макрос4(если С1 = "слово4") и тд. по каждой ячейке.
Заранее благодарю за любую подсказку.
Есть список из, допустим, 10 значений. К каждому из них привязаны несколько своих макросов, которые в свою очередь зависят от слова в ячейке.
Задача состоит в следующем: После того, как я введу все необходимые значения в ячейки, двойным кликом по специально для этого созданной ячейке А1, запустить макросы для всех значений (естественно в соответствии с написанными в них словами).
Запутался в самих расстановках If. Если несложно напишите примитивный пример типа: Если дв.клик по А1 - выполнить макрос1(если В1 = "слово"), выполнить макрос2(если B1 = "слово2"), выполнить макрос3(если С1 = "слово3"),выполнить макрос4(если С1 = "слово4") и тд. по каждой ячейке.
Заранее благодарю за любую подсказку.
В добавок к первому вопросу, если не сложно:
Private Sub Worksheet_Change(ByVal Target As Range)
что добавить, что бы макрос запускался при изменении КОНКРЕТНОЙ ячейки,
а не любой на листе ?
Private Sub Worksheet_Change(ByVal Target As Range)
что добавить, что бы макрос запускался при изменении КОНКРЕТНОЙ ячейки,
а не любой на листе ?
Pravoved90 3 или уже 4 раз пишу тебе чтоб не использовал многочисленные If. Есть прекрасный оператор Select как раз предназначенный для того что бы в зависимости от большого кол-ва условий выполнять определеннное действие. Харэ уже игнорить это предложение!!!
Добавлено:
Код: Select Case Range("A1").Value
Case "слово1"
Макрос1
Case "слово2"
Макрос2
Case "слово3"
макрос3
Case "слово4"
макрос4
Case "слово5"
макрос5
Case "слово6"
макрос6
Case "слово7"
макрос7
Case "слово8"
макрос8
Case "слово9"
макрос9
Case "слово10"
макрос10
Case Else
MsgBox ("такого не предусмотрено")
End Select
End Sub
Добавлено:
Код: Select Case Range("A1").Value
Case "слово1"
Макрос1
Case "слово2"
Макрос2
Case "слово3"
макрос3
Case "слово4"
макрос4
Case "слово5"
макрос5
Case "слово6"
макрос6
Case "слово7"
макрос7
Case "слово8"
макрос8
Case "слово9"
макрос9
Case "слово10"
макрос10
Case Else
MsgBox ("такого не предусмотрено")
End Select
End Sub
q1wed
Пардон, пардон И не игнорирую, просто уже наштамповал этих If с сотню штук по всему документу, вот и не могу переключиться..
Благодарю за ответ. Пошел копаться))
Пардон, пардон И не игнорирую, просто уже наштамповал этих If с сотню штук по всему документу, вот и не могу переключиться..
Благодарю за ответ. Пошел копаться))
Експерты по VBA обратите пожалуйста внимание на мой вопрос вот на этой ветке
http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=5312&start=280#lt
http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=5312&start=280#lt
MaximuS G
If Target.Address = "$A$1" Then
MsgBox ("!!!")
End If
If Target.Address = "$A$1" Then
MsgBox ("!!!")
End If
q1wed
Создай массив. Закинь в него все вопросы с подпунктами и ответами, так, чтобы каждый элемент массива - билет и ответ на билет.
А дальше запусти цикл на случайное выдерание элементов из массива, пока они не отработают все и чтобы не повторялись.
Создай массив. Закинь в него все вопросы с подпунктами и ответами, так, чтобы каждый элемент массива - билет и ответ на билет.
А дальше запусти цикл на случайное выдерание элементов из массива, пока они не отработают все и чтобы не повторялись.
WowGun
Цитата:
Спасибо, не знал что надо ставить знак "$", в прошлом вашем примере не было его просто... А по-поводу первого вопроса не подскажите ? Он выше на несколько сообщений, про изменение знака "/"...
q1wed
Что нибудь скажите по тому же вопросу ?
Цитата:
If Target.Address = "$A$1" Then
Спасибо, не знал что надо ставить знак "$", в прошлом вашем примере не было его просто... А по-поводу первого вопроса не подскажите ? Он выше на несколько сообщений, про изменение знака "/"...
q1wed
Что нибудь скажите по тому же вопросу ?
SERGE_BLIZNUK
Цитата:
а можете ткнуть носом куда вставлять, что-то не соображу и закрывать Ifы где?
Цитата:
угу. имхо, легко. попробуйте, перед тем, где присвоение:
Код:if inStr(1,s,"'")<>1 then s = "'" & s
If WasChanged Then Cells(i, "A").Value = Mid(s, 1, Len(s) - 1)
а можете ткнуть носом куда вставлять, что-то не соображу и закрывать Ifы где?
MaximuS G
http://slil.ru/26109157 этот файл делался по другому вопросу, и не я, но тебе он тоже подойдет (колонка ОК)
Добавлено:
Oyger
мне это надо в ворде.
в екселе я бы это сделал даже не прибегая к помощи макросов, но тогда возникнут проблемы с обратной вставкой в Ворд тк список преобразуется в таблицу.
Кхм, может тогда сделать макрос который бы в Ворде таблицу преобразовывал бы в список??
В ворде никогда маркосов не делал потому как то даже и не знаю как это....
http://slil.ru/26109157 этот файл делался по другому вопросу, и не я, но тебе он тоже подойдет (колонка ОК)
Добавлено:
Oyger
мне это надо в ворде.
в екселе я бы это сделал даже не прибегая к помощи макросов, но тогда возникнут проблемы с обратной вставкой в Ворд тк список преобразуется в таблицу.
Кхм, может тогда сделать макрос который бы в Ворде таблицу преобразовывал бы в список??
В ворде никогда маркосов не делал потому как то даже и не знаю как это....
q1wed
Спасибо, но мне надо немного другое ... замена должна происходить в самой программе, без использования елементов книги (ячеек) ...
P.S. Хотя этого я тоже не знал
Спасибо, но мне надо немного другое ... замена должна происходить в самой программе, без использования елементов книги (ячеек) ...
P.S. Хотя этого я тоже не знал
MaximuS G
достаточно ПОДРОБНО
http://www.sql.ru/forum/actualthread.aspx?bid=46&tid=471234&hl=%f1%e8%ec%e2%ee%eb%fb
достаточно ПОДРОБНО
http://www.sql.ru/forum/actualthread.aspx?bid=46&tid=471234&hl=%f1%e8%ec%e2%ee%eb%fb
q1wed
Опять предлагаю свое: заносишь ячейки таблицы в массив - далее запускаешь макрос и случайным порядком заново заполняешь эту таблицу из массива.
Опять предлагаю свое: заносишь ячейки таблицы в массив - далее запускаешь макрос и случайным порядком заново заполняешь эту таблицу из массива.
WowGun
q1wed
Спасибо большое, но ... наверное я не правильно объясняю, сейчас
дам пример точнее...
допустим пользователь должен ввести через input какие 3 значения
он вводит мы поочереди заносим их в переменные
теперь у нас есть 3 значения переменных, нужно проверить в каких из них
есть запрещенные символы... Как это сделать ?
P.S. Нет никаких ячеек Все внутри кода
Спасибо за терпение
q1wed
Спасибо большое, но ... наверное я не правильно объясняю, сейчас
дам пример точнее...
допустим пользователь должен ввести через input какие 3 значения
он вводит мы поочереди заносим их в переменные
теперь у нас есть 3 значения переменных, нужно проверить в каких из них
есть запрещенные символы... Как это сделать ?
P.S. Нет никаких ячеек Все внутри кода
Спасибо за терпение
MaximuS G
"он вводит мы поочереди заносим их в переменные" - а ЗАЧЕМ?
проверяйте КАЖДОЕ значение, например при потере фокуса конкретным полем .... и если в введеной строке ЕСТЬ какие-то НЕ нужные символы - или заставьте ПЕРЕПИСАТЬ или ИСПРАВЬТЕ ...
"он вводит мы поочереди заносим их в переменные" - а ЗАЧЕМ?
проверяйте КАЖДОЕ значение, например при потере фокуса конкретным полем .... и если в введеной строке ЕСТЬ какие-то НЕ нужные символы - или заставьте ПЕРЕПИСАТЬ или ИСПРАВЬТЕ ...
WowGun
Ясненько, значит буду заменять через ячейки.
Спасибо
Ясненько, значит буду заменять через ячейки.
Спасибо
MaximuS G
смотрите как удобнее .. а для текстового поля ..
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If InStr(TextBox1.Text, "/") Then
MsgBox ("!!!")
End If
End Sub
смотрите как удобнее .. а для текстового поля ..
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If InStr(TextBox1.Text, "/") Then
MsgBox ("!!!")
End If
End Sub
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
Предыдущая тема: Написание своего HyperTerminal для считывания данных
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.