VBA - 仅将某些行添加到数组中,然后打印这些值

时间:2018-06-07 12:52:41

标签: excel-vba vba excel

我正在学习一些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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

在添加此变量时,需要将其添加到evaluate字符串

SA = Evaluate("=IF(2="SA"), 9, 11") 

需要

SA = Evaluate("=IF(2="+SA+"), 9, 11")