Как консолидировать на основе текущего пути листа - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь выяснить, как консолидировать текущий лист.Для меня было бы невозможно перечислить все, что я пробовал, но я сделаю это как можно лучше.

Устройство записи макросов записало это при консолидации:

Range("G1").Select
    Selection.Consolidate Sources:= _
        "'C:\Users\sognibene\Desktop\[Current needs 9-19-2019 working.xlsx]PO'!C1:C2" _
        , Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False

Это работает, еслиЯ использую рабочую книгу под названием «Текущие потребности 9-19-2019 working.xlsx», но не работает, когда я меняю рабочие книги или рабочие таблицы.Мне нужен код для работы с любой книгой и, желательно, с рабочим листом, на котором я сейчас работаю.

Я пробовал это:

Range("G1").Select
    Selection.Consolidate Sources:= _
        "'C:\Users\sognibene\Desktop\" & "["&ActiveWorkbook.Name&"]" & "PO'!C1:C2" _
        , Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False

Это не сработало.Я пробовал это так:

Range("G1").Select
    Selection.Consolidate Sources:= _
        "'C:\Users\sognibene\Desktop\" &ActiveWorkbook.Name& "PO'!C1:C2" _
        , Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False

И я пробовал сотню других вещей.Я пытался использовать ActiveSheet, ActiveWorkbook и все, что мог придумать.

1 Ответ

2 голосов
/ 26 сентября 2019

Надо ставить пробелы вокруг & в vba.

Это сработало:

 Range("G1").Select
    Selection.Consolidate Sources:= _
        "'C:\Users\sognibene\Desktop\" & "[" & ActiveWorkbook.Name & "]" & "PO'!C1:C2" _
        , Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...