我已经写了下面的代码CommandButton_Click(),但它给出了以下错误:
编译错误:无效使用属性.
Public Sub SectorNAme()
Dim score As String, result As Integer
Dim a_counter As Integer
For a_counter = 1 To 473
score = Range("AB" + a_counter).Value
If score = "Technology & FM" Then
result = "25"
ElseIf score = "Operating Equipment & Supplies" Then
result = "26"
ElseIf score = "Interiors & Design" Then
result = "27"
ElseIf score = "Outdoor & Resort Experience" Then
result = "28"
ElseIf score = "HORECA" Then
result = "29"
ElseIf score = "Retail & Franchise" Then
result = "30"
ElseIf score = "Design" Then
result = "33"
ElseIf score = "Health & Fitness Eqpts, P&S" Then
result = "32"
ElseIf score = "Recreational Fun & Adventure" Then
result = "31"
Else
result = "35"
Range("AC" + a_counter).Value
End If
Next a_counter
End Sub
Run Code Online (Sandbox Code Playgroud)
请帮我找一个解决方案.
你有一些小问题:
你得到的错误是:
Range("AC" + a_counter).Value
Run Code Online (Sandbox Code Playgroud)
我假设你打算这样做:
Range("AC" + a_counter).Value = result
Run Code Online (Sandbox Code Playgroud)这个:Range("AB" + a_counter)而且:Range("AC" + a_counter)应该使用&而不是+连接字符串,否则会出现类型不匹配,即:Range("AB" & a_counter)和Range("AC" & a_counter).
我刚刚编辑你的问题,并提供更好的压痕,我还注意到,您End If是后 Range("AC" + a_counter).Value,这是不对的.应该在此之前,否则您的结果将仅在Else案例中分配,而不是针对任何其他人.
所以,你的最终代码应如下所示:
Public Sub SectorName()
Dim score As String, result As Integer
Dim a_counter As Integer
For a_counter = 1 To 473
score = Range("AB" & a_counter).Value
If score = "Technology & FM" Then
result = "25"
ElseIf score = "Operating Equipment & Supplies" Then
result = "26"
ElseIf score = "Interiors & Design" Then
result = "27"
ElseIf score = "Outdoor & Resort Experience" Then
result = "28"
ElseIf score = "HORECA" Then
result = "29"
ElseIf score = "Retail & Franchise" Then
result = "30"
ElseIf score = "Design" Then
result = "33"
ElseIf score = "Health & Fitness Eqpts, P&S" Then
result = "32"
ElseIf score = "Recreational Fun & Adventure" Then
result = "31"
Else
result = "35"
End If
Range("AC" & a_counter).Value = result
Next a_counter
End Sub
Run Code Online (Sandbox Code Playgroud)
现在应该按照您的预期工作.