2015-03-10 3 views
0

Я хочу поместить форму sumif в свой рабочий лист, но мне нужно обратиться к другой книге, но я использую переменные. Что я делаю не так?Функция рабочего листа Sumif, ссылающаяся на другую книгу

Я определил совпадение как переменную.

Dim column1 As Variant 
Dim Column2 As Variant 

column1 = Workbooks("Week 36 Headcount summary Perm.xlsx").Sheets("Page1_1").Range("B:B") 
Column2 = Workbooks("Week 36 Headcount summary Perm.xlsx").Sheets("Page1_1").Range("D:D") 

Cells(7, matcher) = WorksheetFunction.SumIf(column1, A7, Column2) 

ответ

0

SUMIF требует диапазонами, а не массивы, поэтому вам нужно использовать:

Dim column1 As Range 
Dim Column2 As Range 

Set column1 = Workbooks("Week 36 Headcount summary Perm.xlsx").Sheets("Page1_1").Range("B:B") 
Set Column2 = Workbooks("Week 36 Headcount summary Perm.xlsx").Sheets("Page1_1").Range("D:D") 

Cells(7, matcher) = WorksheetFunction.SumIf(column1, Range("A7"), Column2) 

Я предположил, что A7 должен был быть диапазон, а не имя переменной.

+0

Спасибо, Рори, теперь отлично работает. Могу ли я попросить мое собственное обучение, зачем вам нужно использовать set перед определением переменной. Это не работает, если вы этого не сделали, и я не понимаю значение этого слова. –

+0

И ошибка в том, что и где? ;) – Rory

+0

Вы должны использовать 'Set' при назначении типа объекта (например,' Range', 'Workbook',' Worksheet') вместо типа данных (например, 'Long',' Integer', 'String'), чтобы Переменная. – Rory

Смежные вопросы