мне нужно выполнить следующее:Как я могу выполнить эту сложную замену строки с помощью vba?
становится
В основном вставлять пробелы между числом заголовков (1.0, 1.1, 1.2, вставьте пробел, если не существует ...)
А также, если число не существует, добавьте его. (Как в изображении 'before' 2.0 и 6.0 отсутствуют)
Я понял, как создать массив для проверки данных следующим образом:
Dim myRange As Range, c As Range
Dim x As Integer, i As Integer, arSize As Integer, y As Integer
Dim myArray() As String
x = 1
arSize = Int(Range("B" & Rows.Count).End(xlUp).Row)
ReDim myArray(1 To arSize)
Set myRange = Range("B1", Cells(Rows.Count, "B").End(xlUp))
For Each c In myRange
If IsEmpty(c) = True Then
myArray(x) = 0
Else
If IsNumeric(Left(c, 1)) = True Then
myArray(x) = Val(Left(c, 1))
Else: myArray(x) = -1
End If
End If
x = x + 1
Next
'for debugging:
For i = 1 To UBound(myArray)
Range("F" & i).Value = myArray(i)
Next i
End Sub
(если первый символ является числом, то добавьте номер к элементу массива; если он не является номером, тогда установите элемент равным -1, если он пуст, тогда установите элемент в 0)
Просто попросите совета или пример того, как я могу манипулировать данными для достижения моей цели. Большое спасибо. Любая помощь оценивается.
Это работает.Я могу понять, как изменить его на мои нужды (и уже есть). Я столкнулся с проблемой, когда последний заголовок отсутствует, поэтому мне придется поиграть с этим, чтобы выяснить, как его проверить и добавить. например: должно быть ровно 9 заголовков. Ваш код отлично работает, если мне не хватает заголовка 9. –
@MatthewPaulin этот код ожидает, что вы измените условия ввода. Вы можете написать строку, с которой хотите начать, или столбец или что-то еще. Что вы имеете в виду с отсутствующим заголовком 9? – varocarbas
+1, возвращая услугу, и вы использовали подход, более подходящий для тех, кто все еще учится :) – tigeravatar