我正在学习一些VBA来完成一项任务,所以我可能会问多个问题,但首先是。
如果我有一个包含行和列的数据表,有些行有SA,有些行在B列中有SI,我希望7或9中的数据依赖于B列和11列中的值而不管。
我目前的情况如下。
Dim SA, SI
SA = Evaluate("=IF(2="SA"), 9, 11")
SI = Evaluate("=IF(2="SI"), 7, 11")
End Sub
我在执行此操作时收到有关语法的错误。
为了确保正在复制正确的数据,我还试图将这些相应的数组打印到其他工作表。
Sub PrintTest()
Dim SA() As Variant
Dim SI() As Variant
ReDim SA(1 To 3, 1 To 3)
PrintArray SA, ActiveWorkbook.Worksheets("Sheet2").[A1]
End Sub
这一切都在一个按钮下,看起来像这样。
Private Sub CommandButton1_Click()
Dim SA, SI, R&, C%
SA = Evaluate("=IF(2="SA"), 9, 11")
SI = Evaluate("=IF(2="SI"), 7, 11")
With ActiveSheet.UsedRange
End Sub
Sub Test()
Dim SA() As Variant
Dim SI() As Variant
ReDim SA(1 To 3, 1 To 3) ' make it flexible
PrintArray SA, ActiveWorkbook.Worksheets("Sheet2").[A1]
End Sub
非常感谢任何帮助。
答案 0 :(得分:0)
在添加此变量时,需要将其添加到evaluate字符串
SA = Evaluate("=IF(2="SA"), 9, 11")
需要
SA = Evaluate("=IF(2="+SA+"), 9, 11")