У меня проблема с выполнением цикла «Пока в цикле по циклу» выполняется только один раз. Я пытаюсь добиться следующего:
У меня есть куча файлов Excel (* .xlsm), расположенных в одной папке, в которой содержатся данные о некоторых сотрудниках, и я хочу просмотреть каждого из них и получить определенное число. Все идет нормально. Проблема возникает, когда я хочу «изменить» имя сотрудника.
С учетом следующего кода:
Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
With FldrPicker
.Title = "Select A Target Folder"
.AllowMultiSelect = False
If .Show <> -1 Then GoTo NextCode
myPath = .SelectedItems(1) & "\"
End With
NextCode:
myPath = myPath
If myPath = "" Then GoTo ResetSettings
myExtension = "*.xlsm"
myFile = Dir(myPath & myExtension)
For i = 1 To 3
xCallsEin = 0
xMa = wb.Sheets(2).Cells(i, 1)
MsgBox xMa
Do While myFile <> ""
Set wb2 = Workbooks.Open(Filename:=myPath & myFile)
DoEvents
xCallsEinTemp = Application.WorksheetFunction.VLookup(xMa, wb2.Sheets(1).Range(Columns(2), Columns(6)), 4, 0)
xCallsEin = xCallsEin + xCallsEinTemp
wb2.Close SaveChanges:=False
DoEvents
myFile = Dir
wb1.Sheets(1).Cells(i + 6, 2) = xCallsEin
Loop
Next i
Код Do while выполняется только один раз, для первого i
в цикле For.
Я понял, потому что переменная myFile
пуста к тому времени, когда первый цикл do while завершен.
Мне нужна помощь о том, как снова установить переменную myFile
во что-нибудь, чтобы цикл do while выполнялся столько раз, сколько цикл for.