VBA - Добавление только определенных строк в массив и последующая печать этих значений. - PullRequest
0 голосов
/ 07 июня 2018

Я изучаю некоторый VBA, чтобы выполнить поставленную задачу, поэтому я могу задавать несколько вопросов по ходу, но сначала.

Если у меня есть таблица данных со строками и столбцами, некоторые строки имеют SA и некоторые строкииметь SI в столбце B, я хочу, чтобы данные из 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 голосов
/ 07 июня 2018

Поскольку вы добавляете эту переменную, вам нужно добавить ее в строку оценки

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

должно быть

SA = Evaluate("=IF(2="+SA+"), 9, 11")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...