Excel VBA-仅将某些行添加到数组中,然后打印这些值
我正在学习一些VBA来完成我的任务,所以我可能会问多个问题,但首先 如果我有一个包含行和列的数据表,有些行在B列中有SA,有些行在B列中有SI,那么我需要7或9中的数据,具体取决于B列和11列中的值 我目前的情况如下Excel VBA-仅将某些行添加到数组中,然后打印这些值,excel,vba,Excel,Vba,我正在学习一些VBA来完成我的任务,所以我可能会问多个问题,但首先 如果我有一个包含行和列的数据表,有些行在B列中有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 当我这样做的时候,我得到了一个关于语法的错误 为了
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
非常感谢您的帮助。在中添加此变量时,您需要将其添加到评估字符串中
SA = Evaluate("=IF(2="SA"), 9, 11")
需要
SA = Evaluate("=IF(2="+SA+"), 9, 11")
啊,我明白了,我错了!最后我用了另一种方法。Dim Ary作为变量Dim Sa()作为变量,Si()作为变量Dim r作为Long,i作为Long,j作为Long Ary=ActiveSheet.UsedRange i=1:j=1表示r=1到UBound(Ary)如果Ary(r,2)=“Sa”,则ReDim Preserve Sa(1到2,1到i)Sa(1,i)=Ary(r,9)Sa(2,i)=Ary(r,11)i=i+1其他Ary(r,2)=“SI”然后ReDim Preserve SI(1到2,1到j)SI(1,j)=Ary(r,7)SI(2,j)=Ary(r,11)j=j+1 End如果下一个r