Как установить переменную как номер строки в VBA? - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть код, который вставляет строку в конец раздела, а затем копирует формулы сверху. Моя единственная проблема заключается в том, что я не уверен, как определить переменную, такую ​​как «iRow», в качестве динамического диапазона. Код ниже - это часть, которая копирует формулы только из строки выше. Если я установлю iRow как фиксированное число, весь код будет работать нормально. Однако мне нужно, чтобы переменная iRow принимала любой номер строки, в котором значение «2» можно найти в столбце B.

Я пробовал такие вещи, как Columns («B: B»). Найти (Что: = 2), но не могу получить эту работу. Пожалуйста помоги.

Application.ScreenUpdating = True

  Dim iRow As Integer
  iRow = ???
  'Select row
  Rows(iRow - 1).EntireRow.Copy
  'Paste it into the new row
  Rows(iRow).PasteSpecial

  Rows(iRow).SpecialCells(xlConstants).ClearContents

Application.CutCopyMode = False

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Если вам нужен динамический счетчик строк, вам нужен счетчик. с помощью приведенного ниже кода, если вы, например, установите для столбца значение B и используете счетчик, он всегда будет искать последнюю строку.

Например,

Application.ScreenUpdating = True
Dim iRow As Integer
'This will give the last number in the row that is filled
iRow = .Range("B" & .Rows.Count).End(xlUp).Row
'Select row
Rows(iRow - 1).EntireRow.Copy
'Paste it into the new row
Rows(iRow).PasteSpecial

 Rows(iRow).SpecialCells(xlConstants).ClearContents

Application.CutCopyMode = False

Я бы также объявилрабочая тетрадь и рабочий лист, но в этом примере я ее не учел.

0 голосов
/ 04 ноября 2019

Чтобы ответить на ваш вопрос:

"Однако мне нужно, чтобы переменная iRow принимала любой номер строки, в котором значение" 2 "можно найти в столбце B."

Вероятно, вам понадобится что-то вроде:

Sub test()

Dim iRow as Long
With Sheet1 'Use an explicit sheet reference, use a sheets CodeName
    iRow = .Columns(2).Find(2, lookat:=xlWhole).Row
    'Rest of code
End With

End Sub

Это даст номер строки первого вхождения 2. Если не найдено значение два, это приведет к ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...