Я не могу понять, почему VBA кричит на меня на этом. Очень простой код, только один оператор if, и он явно имеет “Запуск” If и соответствующий End If. Я разработчик VB.NET, поэтому это может быть разница в синтаксисе, который мне не хватает.
Sub splitter()
Dim line() As String
Dim rng As Range
Dim row As Range
Dim cell As Range
For Each row In rng.Rows
If row.Value <> "" Then
line = Split(Range(row, 1), ",")
Select Case line(0)
Case "Desktop"
Range(row, 8).Value = "Desktop"
Case "Laptop"
Range(row, 8).Value = "Laptop"
Case "Server"
Range(row, 8).Value = "Server"
Case Else
Range(row, 8).Value = "N/A"
End If
Next
End Sub
В частности, конечный результат заключается в том, что он заполнит раскрывающийся список “Child” (Range (строка, 8)) на основе выбора, сделанного из раскрывающегося списка “Parent” (Range (row, 1)), Поскольку возникает вопрос, причина, по которой я делаю это с помощью VBA, заключается в том, что я могу использовать функцию Split() так, как это делают элементы в раскрывающемся списке “Родитель”. “Рабочий стол, Dell, 745”. Кроме того, я лучший программист, чем разработчик excel.
Ваш оператор выбора нуждается в завершении:
Select Case line(0)
Case "Desktop"
Range(row, 8).Value = "Desktop"
Case "Laptop"
Range(row, 8).Value = "Laptop"
Case "Server"
Range(row, 8).Value = "Server"
Case Else
Range(row, 8).Value = "N/A"
End Select