Цикл работает правильно только в первый раз. Когда j = 2, он правильно читает «20190102». Когда j = 3, он должен читать «20190103», и он отображается пустым. Что пошло не так?
Я пытался не использовать массив, используя массив, все равно я знаю, и все еще застрял во 2-м раунде и ничего не читает в переменной
Option Explicit
Public nextrow As Long
Public fName As String
Public year As String
Public month As String
Public i As Integer
Public j As Integer
Public c As Integer
Public InfoSheet, RefDataSheet, AllDataSheet
Public Const SourcePath = "J:\IL\Pricing & FX\Pricing Report"
Public taskName$
Public fullDate As Variant
Public nmonth As String
Public ndate As String
Public nday As Integer
Public ndaycount As Integer
Public folderdate As Variant
Public rr As Variant
Dim rng As Range
Dim m As Long
Dim dat As Variant
Dim arr(24) As Variant
Sub copydata()
Set InfoSheet = ThisWorkbook.Sheets("Info")
Set RefDataSheet = ThisWorkbook.Sheets("RefData")
Set AllDataSheet = ThisWorkbook.Sheets("AllData")
Windows("G1 HK v2.0 29May2019").Activate
AllDataSheet.Activate
Selection.ClearContents
InfoSheet.Activate
year = Cells(1, 2).Value
month = Cells(2, 2).Value
nday = Cells(3, 2).Value
ndaycount = nday + 1
RefDataSheet.Activate
fName = Cells(2, 2).Value
For j = 2 To ndaycount
arr(j - 2) = Cells(j, 6).Value
folderdate = Right(arr(j - 2), 2) & Mid(arr(j - 2), 5, 2) & Left(arr(j - 2), 4)
taskName = fName & arr(j - 2) & "_" & "??????.xlsx"
ChDir SourcePath
Workbooks.Open Filename:=SourcePath & "\" & year & "\" & month & "\" & folderdate & "\" & "G1 Crest" & "\" & taskName
'Windows(fileName).Activate
rr = ActiveSheet.UsedRange.Offset(1, 0).Copy
ActiveWorkbook.Close
Windows("G1 HK v2.0 29May2019").Activate
AllDataSheet.Activate
nextrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Cells(nextrow, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save
Application.CutCopyMode = False
Next j
End Sub
Пожалуйста, дайте мне знать, в чем проблема здесь.