VBA Excel l oop через все файлы .xslm в одном каталоге - PullRequest
0 голосов
/ 06 августа 2020

Добрый день,

Я хочу проверить все файлы в моем каталоге. Для этого я решил пропустить через все их oop.

Хороший код, который я нашел здесь:

https://www.thespreadsheetguru.com/the-code-vault/2014/4/23/loop-through-all-excel-files-in-a-given-folder

и, соответственно, изменил его для моих личных целей.

 Sub LoopAllExcelFilesInFolder()

 Dim wb As Workbook
 Dim myPath As String
 Dim myFile As String
 Dim myExtension As String
 Dim FldrPicker As FileDialog

 Application.ScreenUpdating = False
 Application.EnableEvents = False
 Application.Calculation = xlCalculationManual

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

 'In Case of Cancel
 NextCode:
 myPath = myPath
  If myPath = "" Then GoTo ResetSettings

 'Target File Extension (must include wildcard "*")
  myExtension = "*.xlsm*"

 'Target Path with Ending Extention
  myFile = Dir(myPath & myExtension)

  'Loop through each Excel file in folder
   Do While myFile <> ""
  'Set variable equal to opened workbook
    Set wb = Workbooks.Open(Filename:=myPath & myFile)

'Ensure Workbook has opened before moving on to next line of code
  DoEvents

'Change First Worksheet's Background Fill Blue
  wb.Worksheets(1).Range("A1:Z1").Interior.Color = RGB(51, 98, 174)

'Save and Close Workbook
  wb.Close SaveChanges:=True
  
'Ensure Workbook has closed before moving on to next line of code
  DoEvents

'Get next file name
  myFile = Dir
   Loop

'Message Box when tasks are completed
 MsgBox "Task Complete!"

  ResetSettings:
 'Reset Macro Optimization Settings
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

  End Sub

но похоже, что код работает только для первого файла.

Я не единственный, кто столкнулся с этой проблемой, потому что я нашел похожие проблемы здесь:

VBA L oop через книги Excel в папке и копирование данных - не перебирать все файлы

Excel-VBA L oop не перебирать все файлы в папке

Код останавливается при просмотре файлов в книге. close

новый файл не запрашивается вообще . В моей консоли VBA "проект не выбран"

введите описание изображения здесь

1 Ответ

1 голос
/ 06 августа 2020
• 1000 1004 *

Вероятно, вы можете начать снова с моей структуры или исходной структуры, из которой вы ее взяли, и постепенно добавлять строки кода, а также попробуйте запустить его шаг за шагом, чтобы увидеть, где он заканчивается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...