计算器是excel文件中的一个选项卡。 nnoise是由具有下拉列表的单元格分配的宏。下拉列表的选项是1,2,3,4和5.根据下拉列表的选择,我希望为另一个单元格分配一定的值。
它似乎总是需要对象。
Sub nnoise()
noiseval = Calculator.Range("E15")
With Calculator
If noiseval = 1 Then
.Range("F15") = 0
ElseIf noiseval = 2 Then
.Range("F15") = 30
ElseIf noiseval = 3 Then
.Range("F15") = 50
ElseIf noiseval = 4 Then
.Range("F15") = 70
ElseIf noiseval = 5 Then
.Range("F15") = 90
End If
End With
End Sub
答案 0 :(得分:5)
我怀疑noiseval
是以文字形式出现的。您的程序也可以从Select Case statement中获益,以替换If ... ElseIf ... End If
。
Sub nnoise()
Dim noiseVal As Variant
With Worksheets("Calculator")
noiseVal = .Range("E15").Value2
Select Case noiseVal
Case 1, "1"
.Range("F15") = 0
Case 2, "2"
.Range("F15") = 30
Case 3, "3"
.Range("F15") = 50
Case 4, "4"
.Range("F15") = 70
Case 5, "5"
.Range("F15") = 90
Case Else
.Range("F15") = vbNullString
End Select
End With
End Sub
通过堆叠比较值,noiseVal
针对字符串和整数值进行测试;例如1
不等于"1"
。
我不确定您的工作表参考;我从你的叙述中假设计算器是工作表.Name property。