У меня есть макрос с 1300+ строками VBA, который делает многое в электронной таблице. Последние несколько команд скопированы ниже.
Раздел «Сравнить город» всегда работает, раздел «Сравнить АДРЕС» всегда работает. «Сравнить ГОСУДАРСТВО» никогда не работает.
«Сравнить СОСТОЯНИЕ» работает, только если я запускаю его в отдельном макросе. (Само по себе) Или он запускается, если я перемещаю его в другой раздел (в начале кода, или в середине кода и т. Д.), Но он работает только при первом запуске. Если я открываю новый файл, City, Address, Zip работают (они делают то же самое, что и «STATE», но в разных столбцах.), Но логика STATE не работает.
Я не получаю сообщения об ошибках. Он просто не копирует Not Null в пустую ячейку.
Есть идеи почему?
Спасибо
'Сравните СОСТОЯНИЕ слева и справа. Если оба пустые или полные, никаких действий. Если один пустой другой полный, скопируйте в пустой.
For x = 2 To RowsInFile
LeftCell = "G" & x
RightCell = "FN" & x
If IsEmpty(Range(LeftCell)) = True And IsEmpty(Range(RightCell)) = False Then
Range(RightCell).Select
Application.CutCopyMode = False
Selection.Copy
Range(LeftCell).Select
ActiveSheet.Paste
ElseIf IsEmpty(Range(LeftCell)) = False And IsEmpty(Range(RightCell)) = True Then
Range(LeftCell).Select
Application.CutCopyMode = False
Selection.Copy
Range(RightCell).Select
ActiveSheet.Paste
End If
Next x
'Сравните CITY слева и справа. Если оба пустые или полные, никаких действий. Если один пустой другой заполнен, скопируйте в пустой.
For x = 2 To RowsInFile
LeftCell = "F" & x
RightCell = "FM" & x
If IsEmpty(Range(LeftCell)) = True And IsEmpty(Range(RightCell)) = False Then
Range(RightCell).Select
Application.CutCopyMode = False
Selection.Copy
Range(LeftCell).Select
ActiveSheet.Paste
ElseIf IsEmpty(Range(LeftCell)) = False And IsEmpty(Range(RightCell)) = True Then
Range(LeftCell).Select
Application.CutCopyMode = False
Selection.Copy
Range(RightCell).Select
ActiveSheet.Paste
End If
Next x
'Сравните АДРЕС слева и справа. Если оба пустые или полные, никаких действий. Если один пустой другой полный, скопируйте в пустой.
For x = 2 To RowsInFile
LeftCell = "D" & x
RightCell = "FL" & x
If IsEmpty(Range(LeftCell)) = True And IsEmpty(Range(RightCell)) = False Then
Range(RightCell).Select
Application.CutCopyMode = False
Selection.Copy
Range(LeftCell).Select
ActiveSheet.Paste
ElseIf IsEmpty(Range(LeftCell)) = False And IsEmpty(Range(RightCell)) = True Then
Range(LeftCell).Select
Application.CutCopyMode = False
Selection.Copy
Range(RightCell).Select
ActiveSheet.Paste
End If
Next x