Добрый день!
Макро-рекордером записал макрос выглядит он следующий образом (тут только часть кода, в целом он очень длинный, но в целом выглядит следующий образом, здесь его начало)
Хотел бы запустить его на большое количество файлов и для этой задачи нашел следующий макрос в сети
Когда я отдельно запускаю макрос открыв книгу он работает, а когда я вставляю его в код, то он не выполняет никаких действий, но когда я вставляю свой код в часть "YOUR CODE HERE", ничего не происходит, хотел бы узнать, что нужно сделать, чтобы макрос работал
Заранее благодарен!
Макро-рекордером записал макрос выглядит он следующий образом (тут только часть кода, в целом он очень длинный, но в целом выглядит следующий образом, здесь его начало)
| Код |
|---|
Sheets.Add After:=ActiveSheet
Sheets("Лист1").Select
Range("B58:I59").Select
Selection.ClearContents
Range("B63:I64").Select
Selection.ClearContents
Range("B65").Select
Sheets("Лист1").Select
Range("C4").Select
ActiveCell.FormulaR1C1 = "=Лист2!R[16]C[12]"
Range("D4").Select
ActiveCell.FormulaR1C1 = "=Лист2!R[17]C[11]"
Range("E4").Select
ActiveCell.FormulaR1C1 = "=Лист2!R[19]C[10]"
|
| Код |
|---|
Sub RunOnAllFilesInFolder() Dim folderName As String, eApp As Excel.Application, fileName As String Dim wb As Workbook, ws As Worksheet, currWs As Worksheet, currWb As Workbook Dim fDialog As Object: Set fDialog = Application.FileDialog(msoFileDialogFolderPicker) Set currWb = ActiveWorkbook: Set currWs = ActiveSheet 'Select folder in which all files are stored fDialog.Title = "Select a folder" fDialog.InitialFileName = currWb.Path If fDialog.Show = -1 Then folderName = fDialog.SelectedItems(1) End If 'Create a separate Excel process that is invisibile Set eApp = New Excel.Application: eApp.Visible = False 'Search for all files in folder [replace *.* with your pattern e.g. *.xlsx] fileName = Dir(folderName & "\*.*") Do While fileName <> "" 'Update status bar to indicate progress Application.StatusBar = "Processing " & folderName & "\" & fileName Set wb = eApp.Workbooks.Open(folderName & "\" & fileName) '... 'YOUR CODE HERE '... wb.Close SaveChanges:=False 'Close opened worbook w/o saving, change as needed Debug.Print "Processed " & folderName & "\" & fileName fileName = Dir() Loop eApp.Quit Set eApp = Nothing 'Clear statusbar and notify of macro completion Application.StatusBar = "" MsgBox "Completed executing macro on all workbooks" End Sub |
Заранее благодарен!
Изменено: - 06.12.2019 16:17:51