есть таблица, скопированная as values из pivot table. Нужно заполнить пустоты, возникающие при этом в строках.
Для этого изначально использовался вот такой код:
- Код: Выделить всё
Private Sub CommandButton1_Click()
Dim j As Variant
j = 2
Do Until (Sheet1.Cells(j, 5) = "")
If (Sheet1.Cells(j, 1) = "") And (Not (Sheet1.Cells(j, 5) = "")) Then
Sheet1.Cells(j, 1) = Sheet1.Cells((j - 1), 1)
End If
j = j + 1
Loop
End sub
То есть был создан столбец 5, заполненный одинаковыми значениями на протяжении всего массива. И программа ориентировалась на него.
Это все было здорово, пока работа велась с простой таблицецй, в которой было заранее известно количество столбцов. Я просто повторяла этот код дальше, меняя вторую цифру на соответственно 2, 3 и т.д.
Но сейчас нужно сделать более универсальный алгоритм, который не будет зависеть от моего знания количества столбцов и будет останавливаться на столбце, под названием Total, то есть не будет заполнять пустоты там, а во всех остальных столбцах будет.
Вот тут началась проблема, я совсем недавно занимаюсь VBA (буквально недели полторы и , видимо, что-то неправильно прописываю.
В общем, я решила попробовать сделать так:
- Код: Выделить всё
Private Sub CommandButton1_Click()
Dim j As Variant
j = 2
Dim i As Variant
i = 1
Do Until (Sheet1.Cells(j, 10) = "") And (Sheet1.Cells(1,i) = "Total")
If (Sheet1.Cells(j, i) = "") And (Not (Sheet1.Cells(j, 10) = "")) Then
Sheet1.Cells(j, i) = Sheet1.Cells((j - 1), i)
End If
j = j + 1
i = i + 1
Loop
End Sub
И вот тут он выдает мне ошибку и отказывается работать
Помогите, пожалуйста, разобраться!
Ему не нравится как вот эта строка:
- Код: Выделить всё
Do Until (Sheet1.Cells(j, 10) = "") And (Sheet1.Cells(1,i) = "Total")
Здесь я еще могу понять, что просто не знаю, как обозначить то, что название столбца "Total" и на нем нужно остановиться
так и эта
- Код: Выделить всё
If (Sheet1.Cells(j, i) = "") And (Not (Sheet1.Cells(j, 10) = "")) Then
а тут я вообще не понимаю, что же не так ((
Помогите, пожалуйста разобраться!