Ссылка на новый столбец без фиксированного адреса в VBA - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь выяснить, как ссылаться на столбец, непосредственно предшествующий столбцу с меткой «Всего».

Предполагается, что мой макрос найдет столбец с меткой «Всего», вставит перед ним строку, а затем перебирает функцию SUMIF для указанных ячеек. У меня работает вставка части столбца, но я не могу понять, как затем ссылаться на этот новый столбец для записи SUMIF.

Я пытаюсь получить ссылку, где я написал [[ЗДЕСЬ]].

Любые идеи о том, как заставить работать эту ссылку?

Спасибо !!

А для прозрачности я получил вставку кода столбца из вопроса другого пользователя, заданного здесь.

For s = LBound(sheetArray) To UBound(sheetArray)
        With sheetArray(s)
            With .Rows(7).SpecialCells(XlCellType.xlCellTypeConstants, xlTextValues)
                Set f = .Find(what:="Total", LookIn:=xlValues, lookat:=xlWhole)
                If Not f Is Nothing Then
                    firstAddress = f.Offset(, 1).Address 
                    Do
                        f.EntireColumn.Insert
                        Set f = .FindNext(f)
                    Loop While f.Address <> firstAddress
                End If
            End With
        End With
    Next s

'The above works.

    For s = 1 To UBound(sheetArray)
        With sheetArray(s)
            For i = 8 To 21
                Set criteriaDept = sheetArray(s).Cells("B7")
                Set criteriaSite = sheetArray(s).Cells(i, 3)
                Set criteriaTherapy = sheetArray(s).Cells("C6")
                    sheetArray.Cells(i, [[HERE]]) = SumIf(sumIfRange, cSiteRange, criteriaSite,       
                        cDeptRange, criteriaDept, cTherapyRange, criteriaTherapy)
            Next i
        End With
    Next s

1 Ответ

1 голос
/ 06 марта 2019

Во-первых, получите номер столбца, который непосредственно предшествует «Всего» (под «предшествующим», я полагаю, вы имеете в виду слева):

Dim preCol as Long
preCol = Sheets("Sheet1").Rows(1).Find(what:="Total").Offset(0, -1).Column
'Now, you can use that variable:
' ...whatever
sheetArray.Cells(i, preCol) = ...

Обратите внимание, что вам, вероятно, потребуетсязамените / обновите Sheets("Sheet1") на любой лист с заголовком этого столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...