Я хочу запустить код цикла Excel VBA, который выполняет поиск в столбце «G» для поиска любых появившихся дат, а затем что-то делает с этой датой, а затем переходит к следующей дате, которая появляется в выделенном фрагменте. Моя проблема в том, что как только код достигает нижней части рабочего листа (или конца выделения), он просто перезапускается обратно в верхней части раздела и повторяется снова. Мне нужно, чтобы код остановился, когда он достигнет конца документа (и в данном случае конца выделения). Есть идеи, как этого добиться?
Вот мой код:
Sub Move_Dates_To_Column()
Dim Cell As Range
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Set SelectedRange = Sheets("Sheet1").Range("G1:G9000")
Set FindDate = Sheets("Sheet1").Range("G1:G9000").Find(What:="**/**/****", LookIn:=xlFormulas)
' Do Until FindDate Is Nothing
' If Not FindDate Is Nothing Then
For Each Cell In SelectedRange
Cell.Select
If Not IsEmpty(ActiveCell.Value) Then
Cells.Find(What:="**/**/****", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
ActiveCell.Copy
ActiveCell.Offset(2, -7).PasteSpecial xlPasteValuesAndNumberFormats
ActiveCell.Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
ActiveCell.Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
ActiveCell.Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
ActiveCell.Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
ActiveCell.Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
ActiveCell.Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
ActiveCell.Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
ActiveCell.Offset(2, 0).PasteSpecial xlPasteValuesAndNumberFormats
ActiveCell.Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
ActiveCell.Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
ActiveCell.Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
'ActiveCell.Offest(1, 0).Select
End If
Next Cell
End Sub
* Просто обратите внимание, в этом диапазоне есть пробелы. Диапазон должен быть «Диапазон (G: G)».
End If
. Пожалуйста, исправьте свой код для компиляции и попытайтесь лучше объяснить, чего вы хотите достичь. Например, вы хотите скопировать и вставить тот же лист или другой? потому что ваш код иногда ссылается на Sheet1, а иногда нет. - person A.S.H   schedule 09.10.2015