Обнуление переменнной
Добавлено: 27 янв 2011, 11:49
Добрый день!
У меня возникла необычная проблема с VBA.
Есть переменная mm_column as Integer, которая самопроизвольно обнуляется после завершения цикла. То есть в цикле она получает значение, а потом обнуляется. А мне нужно использовать её дальше.
Фрагмент кода:
В этих двух циклах я определяю номер столбца, где находится значение текущего месяца (и походу вставляю значение в другой файл), мне нужен номер столбца - mm_column:
If Cells(4, c_m).Value <> 0 And Cells(4, n_m).Value = "" Then
total_russia_file.Cells(4, c_m).Copy '<------ MTD Value
scorecard_file.Activate
scorecard_file.Cells(6, 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
mm_column = c_m
End If
If Cells(4, c_m) <> 0 And Cells(4, n_m) <> 0 Then
total_russia_file.Cells(4, n_m).Copy '<------ MTD Value
scorecard_file.Activate
scorecard_file.Cells(6, 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
mm_column = n_m
End If
А теперь использую номер столбца, где находится значение для текущего месяца, что найти значение для последней заполненной недели, но mm_column уже равен 0 =((
total_russia_file.Activate
If total_russia_file.Cells(4, mm_column - 1).Value <> 0 And total_russia_file.Cells(4, mm_column - 2).Value <> 0 Then
total_russia_file.Cells(4, mm_column - 1).Copy '<-------- WTD Value
scorecard_file.Activate
scorecard_file.Cells(5, 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Else
For c = 4 To mm_column - 1
If total_russia_file.Cells(4, c).Value = 0 And total_russia_file.Cells(4, c - 1).Value <> 0 Then
total_russia_file.Cells(4, c - 1).Copy '<-------- WTD Value
scorecard_file.Activate
scorecard_file.Cells(5, 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Exit For
End If
Next c
End If
Самое странное, что я не могу определить, в чем проблема, потому что в режиме отладки значение переменной сохраняется. Но вот если запустить весь код целиком, возникает эта ошибка.
С чем это может быть связано?
У меня возникла необычная проблема с VBA.
Есть переменная mm_column as Integer, которая самопроизвольно обнуляется после завершения цикла. То есть в цикле она получает значение, а потом обнуляется. А мне нужно использовать её дальше.
Фрагмент кода:
В этих двух циклах я определяю номер столбца, где находится значение текущего месяца (и походу вставляю значение в другой файл), мне нужен номер столбца - mm_column:
If Cells(4, c_m).Value <> 0 And Cells(4, n_m).Value = "" Then
total_russia_file.Cells(4, c_m).Copy '<------ MTD Value
scorecard_file.Activate
scorecard_file.Cells(6, 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
mm_column = c_m
End If
If Cells(4, c_m) <> 0 And Cells(4, n_m) <> 0 Then
total_russia_file.Cells(4, n_m).Copy '<------ MTD Value
scorecard_file.Activate
scorecard_file.Cells(6, 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
mm_column = n_m
End If
А теперь использую номер столбца, где находится значение для текущего месяца, что найти значение для последней заполненной недели, но mm_column уже равен 0 =((
total_russia_file.Activate
If total_russia_file.Cells(4, mm_column - 1).Value <> 0 And total_russia_file.Cells(4, mm_column - 2).Value <> 0 Then
total_russia_file.Cells(4, mm_column - 1).Copy '<-------- WTD Value
scorecard_file.Activate
scorecard_file.Cells(5, 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Else
For c = 4 To mm_column - 1
If total_russia_file.Cells(4, c).Value = 0 And total_russia_file.Cells(4, c - 1).Value <> 0 Then
total_russia_file.Cells(4, c - 1).Copy '<-------- WTD Value
scorecard_file.Activate
scorecard_file.Cells(5, 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Exit For
End If
Next c
End If
Самое странное, что я не могу определить, в чем проблема, потому что в режиме отладки значение переменной сохраняется. Но вот если запустить весь код целиком, возникает эта ошибка.
С чем это может быть связано?