Я хочу извлечь индексы строк непустых ячеек в диапазоне («A1: A10»), который имеет имя «данные», диапазон («Ai») (i
четное число) имеет значение «long» и диапазон («Aj») (j
- нечетное число) - пустая ячейка. Если я сделаю это правильно, я должен получить (2,4,6,8,10), но мой код не удался. Вот мой код:Извлечь индексы строк непустых ячеек в определенном диапазоне
Sub RowIndexes()
Dim NonEmptyRows As Integer
Dim RowIndexes() As Integer
Dim i As Integer
Dim rng As Range
NonEmptyRows = WorksheetFunction.CountIf(Range("data"), "long")
ReDim RowIndexes(1 To NonEmptyRows)
For Each rng In Range("data")
If rng.Value = "long" Then
i = i + 1
RowIndexes(i) = rng.Row
End If
Next rng
Sheets("sheet1").Range("B1:B5").Value = RowIndexes
End Sub
я напечатал его, но результат меня смутило, я только что получил «2» (это может быть индекс строки диапазона («A2»)), и я не могу понять Зачем. На самом деле нужна помощь здесь.
благодаря для инструкций, и я исправил эту проблему, которая отложила мой проект на два дня. Своим вдохновением я немного пошатнулся и нашел что-то интересное. – scofieldchen
Используйте знак галочки, чтобы принять ответ http://stackoverflow.com/help/someone-answers – izzymo
Если вы создаете массив и назначаете ему некоторые значения вручную, это, кажется, «вектор строки», и если вы хотите напечатайте его, либо вы используете Range («whatever»). value = workheetfunction.transpose (MyArray) или цикл for. Но если вы переносите значения диапазона в массив, это, кажется, «вектор-столбец» или «матрица», вы можете просто распечатать его с помощью Range («whatever»). Value = MyArray (у них одинаковые строки и столбцы) , Интересно, была ли общая схема? – scofieldchen