Видимо проблема вот в чем: Файл Excel БЕЗ пометки "только чтение" после выполнения макроса каким-то образом становится открыт только для чтения.
Подскажите, пожалуйста, как с этим справиться?
Подскажите, пожалуйста, как с этим справиться?
05.03.2013 16:18:25
Пытаюсь по Вашей форме исправить, например, строчку
If (A1 = 1 And b1 = 1 And c1 = 1 And d1 = 1 And e1 = 1) Or (a2 = 1 And b2 = 1 And c2 = 1 And d2 = 1 And e2 = 1) _ Or (a3 = 1 And b3 = 1 And c3 = 1 And d3 = 1 And e3 = 1) Or (a4 = 1 And b4 = 1 And c4 = 1 And d4 = 1 And e4 = 1) _ Or (a5 = 1 And b5 = 1 And c5 = 1 And d5 = 1 And e5 = 1) Then... Записываю, if or(AND(a1=1,b1=1,c1 = 1,d1 = 1,e1 = 1),AND(a2=1,b2=1,c2 = 1,d2 = 1,e2 = 1) then... Выдает ошибку Expected: <various>, подсвечивая or. |
|
|
05.03.2013 15:34:33
Здравствуйте.
Вопрос глупый, но никак не могу сообразить что с этим можно сделать... Вводятся значения переменных от a1 до e5 (т.е. их 25 - безобразно много) и в зависимости от их значения нужно скопировать данные с разных листов другой книги). Пишу топорно, через If-Elseif-End If и получаю непомерно громоздкого и жутко неудобного монстра, который, к тому же, с учетом кучи других записей в макросе, оказывается больше разрешенного размера. If (A1 = 1 And b1 = 1 And c1 = 1 And d1 = 1 And e1 = 1) Or (a2 = 1 And b2 = 1 And c2 = 1 And d2 = 1 And e2 = 1) _ Or (a3 = 1 And b3 = 1 And c3 = 1 And d3 = 1 And e3 = 1) Or (a4 = 1 And b4 = 1 And c4 = 1 And d4 = 1 And e4 = 1) _ Or (a5 = 1 And b5 = 1 And c5 = 1 And d5 = 1 And e5 = 1) Then Sheets("5").Activate ElseIf (A1 = 1 And b1 = 1 And c1 = 1 And d1 = 1 And e1 = 0) Or (a2 = 1 And b2 = 1 And c2 = 1 And d2 = 1 And e2 = 0) _ Or (a3 = 1 And b3 = 1 And c3 = 1 And d3 = 1 And e3 = 0) Or (a4 = 1 And b4 = 1 And c4 = 1 And d4 = 1 And e4 = 0) _ Or (a5 = 1 And b5 = 1 And c5 = 1 And d5 = 1 And e5 = 0) Then Sheets("6").Activate ElseIf (A1 = 1 And b1 = 1 And c1 = 1 And d1 = 0 And e1 = 1) Or (a2 = 1 And b2 = 1 And c2 = 1 And d2 = 0 And e2 = 1) _ Or (a3 = 1 And b3 = 1 And c3 = 1 And d3 = 0 And e3 = 1) Or (a4 = 1 And b4 = 1 And c4 = 1 And d4 = 0 And e4 = 1) _ Or (a5 = 1 And b5 = 1 And c5 = 1 And d5 = 0 And e5 = 1) Then Sheets("7").Activate.............и т.д., и т.п. Дробить макрос не хочется, да и эту запись очень хотелось бы как-то оптимизировать, не знаю - как... Добрые умные люди, подскажите, пожалуйста. |
|
|
25.02.2013 17:11:50
Здравствуйте!
При написании макроса возникла такая проблема: нужно найти в таблице строку с определенным текстом (текст является частью формулы) и для этой строки выполнить некоторые действия. Пишу в упрощенном варианте следующее: iRow1 = 1 iRow2 = 100 For i = iRow1 To iRow2 Set Klass = Cells(i, 1).Find(What:="Фактического количество", LookAt:=xlPart) If Klass Is Nothing Then Cells(i, "L") = "K1" Else Cells(i, "L") = "K2" End If Next и код ничего не находит... :-( Причем структура кода скопирована из этого же макроса, где прекрасно работала, а тут почему-то оказывается... Подскажите, пожалуйста, в чем дело! |
|
|
07.02.2013 17:47:41
Здравствуйте
В ячейках записаны дата1 и дата2 (всегда разные) стоит задача сравнить дату1 с датой2 и датой на год раньше даты2 Пишу: Data2ранее = DateAdd("yyyy", -1, Data2) If Data1 < Data2 and Data1 > Data2ранее Then .... End If На Data2ранее не реагирует. Подскажите, пожалуйста, как это сделать? |
|
|