2

我不明白为什么 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

具体来说,最终结果是它将根据“父”下拉列表 (Range(row, 1)) 的选择填充“子”下拉列表 (Range(row, 8))。因为会出现问题,所以我使用 VBA 执行此操作的原因是因为我可以使用 Split() 函数以及父下拉列表中的项目的制作方式,例如。“台式机,戴尔,745”。此外,我是一个比 excel 开发人员更好的程序员。

4

1 回答 1

8

您的 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
于 2012-07-12T20:28:56.203 回答