Я повторяю через столбец «А» каждой строки в диапазоне, определяемом .UsedRange(), и записывая номер строки в ячейку. Странное поведение я вижу, когда номер строки записывается в ячейку, порядковый номер строки записывается только каждый второй ячейки:При повторении диапазона Excel значения записываются во каждую вторую ячейку
(1,1) = «1»
(2,1) = пусто
(3,1) = "2"
(4,1) = пусто
(5,1) = "3"
(6 , 1) = пусто
(7,1) = "4"
...
Лист имеет 10 строк, с пустыми ячейками в столбце "A", и отдельные слова в каждая ячейка в обоих столбцах «B» и «C». Когда я перехожу через код, я вижу, что количество строк (oRow.Row) повторяется последовательно, как и следовало ожидать, но значения записываются в другом месте. Я попытался сбросить .UsedRange(), как упоминалось здесь: http://www.j-walk.com/ss/excel/tips/tip73.htm, но никаких изменений с результатом не было.
код я использую:
Option Explicit
Sub IterateAndWrite()
Dim oRange As Range
Dim oRow As Range
Dim lCount As Long
Set oRange = ThisWorkbook.Worksheets(1).UsedRange
For Each oRow In oRange.Rows
oRow.Cells(oRow.Row, 1).Value = oRow.Row
' Reset the range
'lCount = ActiveWorkbook.Worksheets(1).UsedRange.Rows.Count
Next oRow
End Sub
Где я буду неправильно?
Смотрите мой ответ ниже для объяснения что вы делаете неправильно (видимо, это недокументированный вариант использования метода '.Cells') и быстрый переход к вашему коду :) –