Мой код открывает несколько файлов .XLS и выполняет функцию SumIF
с активной книгой. Моего кода есть вопрос, где я комментарий 'Pmax BM
, 'Available Declaration
и 'Generation Schedule
(колонок C
D
E
с экрана печати)VBA Lohe WorksheetFunction.SumIf on Active Workbook
Я думаю, что здесь моя проблема TW.Range(Cells(i, 1), Cells(i + 23, 1)=
, потому что я поставил весь диапазон с результатами SumIf, и именно поэтому я имеют те же результаты, что range.`
Dim data As Date
Dim rng As Range
Dim TW As Worksheet: Set TW = ThisWorkbook.Worksheets("Centralizator Lunar")
i = 2
j = 20
StrFile = ThisWorkbook.Path
StrFile = Dir(StrFile & "\*INT2*")
Do While Len(StrFile) > 0
TW_P = ThisWorkbook.Path
myfile = TW_P & "\" & StrFile
Set AWb = Workbooks.Open(myfile)
data = Left(ActiveWorkbook.Name, 10)
nr_AWb = ActiveWorkbook.Worksheets("Sheet1").UsedRange.Rows.Count
'Data
TW.Range(Cells(i, 1), Cells(i + 23, 1)) = data
'Pmax BM
TW.Range(Cells(i, 3), Cells(i + 23, 3)) = WorksheetFunction.SumIf(AWb.Worksheets("Sheet1").Range("D20:D" & nr_AWb), _
AWb.Worksheets("Sheet1").Cells(j, 4), _
AWb.Worksheets("Sheet1").Range("N20:N" & nr_AWb))
'Available Declaration
TW.Range(Cells(i, 4), Cells(i + 23, 4)) = WorksheetFunction.SumIf(AWb.Worksheets("Sheet1").Range("D20:D" & nr_AWb), _
AWb.Worksheets("Sheet1").Cells(j, 4), _
AWb.Worksheets("Sheet1").Range("I20:I" & nr_AWb))
'Generation Schedule
TW.Range(Cells(i, 5), Cells(i + 23, 5)) = WorksheetFunction.SumIf(AWb.Worksheets("Sheet1").Range("D20:D" & nr_AWb), _
AWb.Worksheets("Sheet1").Cells(j, 4), _
AWb.Worksheets("Sheet1").Range("H20:H" & nr_AWb))
i = i + 24
j = j + 1
StrFile = Dir
ActiveWindow.Close SaveChanges:=False
Loop
Привет, Мой вопрос: почему 'j' из' .Cells (j, 4) 'всегда имеет значение' 20'? потому что здесь начинается проблема. – BOB
'j' инициализируется как 20, так что, предположительно, ваш цикл работает только один раз? – SJR
Нет, я запускаю в своем примере 5 раз, потому что у меня есть 5 файлов в моей папке – BOB