Использование SumIf на закрытой книге (файл)
Я хочу использовать SumIf
функция диапазона данных в закрытом файле Excel. Вот мой код для получения данных из закрытого файла:
Set appxl = CreateObject("Excel.application")
Dim myfile As Window
Dim currentSheet As Worksheet
Dim lastRow As Double
Dim sourceFileName As String
PathReplace = Replace(ActiveWorkbook.Path, "Not issued TECO", "Daily")
sourceFileName = "Not_Issued_Template.xlsm" '
With appxl
.Workbooks.Open Path & "\" & sourceFileName
.Visible = False
End With
Set myfile = appxl.Windows(sourceFileName)
myfile.Activate
Set currentSheet = appxl.Sheets("Sheet1")
Код работает нормально, когда я пытаюсь, например, получить данные из ячейки А1 или что-то. Я могу даже скопировать весь диапазон, но только копировать.
currentSheet.Range("A:A").Copy
Когда я запускаю этот код, я копирую этот диапазон данных и могу вставить вручную, но когда я пытаюсь это сделать:
currentSheet.Range("A:A").Copy Destination:=ActiveWorkbook.Worksheets(5).Range("A:A")
Я получаю 1004 ошибку. Во всяком случае, я пытался использовать SumIf
функция:
ActiveWorkbook.Worksheets(4).Range("A2") = Application.SumIf(currentSheet.Range("A:A"), "E2", currentSheet.Range("B:B"))
И это не хочет работать. Все виды функций, использующих Range of Data из этого закрытого файла, похоже, не работают. Только когда я пытаюсь получить данные из одной ячейки, это работает:
ActiveWorkbook.Worksheets(5).Range("A1") = currentSheet.Range("A1")
Но когда я изменяю диапазон на:
ActiveWorkbook.Worksheets(5).Range("A1:A2") = currentSheet.Range("A1:A2")
Клетки пустые.
Если SumIF
из диапазона данных, помещенных в другой файл, невозможно, я могу просто скопировать этот диапазон данных (A:A) и (B:B) из этого закрытого файла на другой лист в текущем файле и сделать SumIf
но, как я уже сказал, я даже не могу скопировать диапазон данных.
Есть ли способ исправить это?