我不明白为什么 VBA 在这件事上对我大喊大叫。非常简单的代码,只涉及一个if语句,并且明显有一个“Starting”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
具体来说,最终结果是它将根据“父”下拉列表 (Range(row, 1)) 中的选择填充“子”下拉列表 (Range(row, 8)) 。因为会出现问题,所以我使用 VBA 执行此操作的原因是因为我可以利用 Split() 函数以及父级下拉列表中的项目的制作方式,例如。 “台式机,戴尔,745”。而且,我是一个比 Excel 开发人员更好的程序员。
最佳答案
您的 select 语句需要结束:
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
关于Excel VBA "End If without block If"- VBA 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11460065/