Попытка скопировать две ячейки из нескольких книг на один лист

Я пытаюсь скопировать две ячейки B2 & C2 из рабочего листа Results в каждую книгу в папке, а затем вставить ячейки в основную книгу, начиная с ячейки A1, A2, A3 etc.

Я нашел учебник, который почти выполняет то, что я ищу, я попытался отредактировать его.

Я не уверен, как сделать так, чтобы данные отображались на одном листе в мастере, поскольку я думаю, что это добавит новый лист для каждой книги в папке.

Последняя строчка здесь: ActiveWorkbook.Close Save = False

Выдает ошибку: Expected Function or Variable., при этом Save выделен как проблема.

 'Copy cells B2 & C2 from the results worksheet
Worksheets("Results").Activate
ActiveSheet.Range(Cells(2, 2), Cells(3, 2)).Copy
ActiveWorkbook.Close Save = False

Полный код.

Sub LoopThroughDirectory()

Dim MyFile As String
Dim WorkbookCounter As Long
WorkbookCounter = 1
Dim Filepath As String

Filepath = "C:\Test\"

Application.ScreenUpdating = False
MyFile = Dir(Filepath)
Do While Len(MyFile) > 0

Workbooks.Open (Filepath & MyFile)

'Copy cells B2 & C2 from the results worksheet
Worksheets("Results").Activate
ActiveSheet.Range(Cells(2, 2), Cells(3, 2)).Copy
ActiveWorkbook.Close Save = False

Application.DisplayAlerts = False

'Paste cells B2 & C2 to A1
Sheets(WorkbookCounter).Select
ActiveSheet.Paste Destination:=Worksheets(WorkbookCounter).Range("A1")
Application.CutCopyMode = False
WorkbookCounter = WorkbookCounter + 1
If WorkbookCounter > 1000 Then
Exit Sub
End If

MyFile = Dir
Loop
ActiveWorkbook.Save
Application.ScreenUpdating = True

End Sub

Вместо этого используйте ActiveSheet.Range("B2:C2").Copy.

StoneGiant 13.09.2018 18:34

Или Range(Cells(2, 2), Cells(2, 3)).Copy

bilbo_strikes_back 13.09.2018 18:39

Спасибо, это сработало. Та же ошибка с ActiveSheet.Paste Destination: = Worksheets (q) .Range («A1») сейчас. Кто-нибудь знает, что означает эта ошибка?

L23P 13.09.2018 18:46

Проверьте, какой тип меток “ ” вы используете: те, что указаны в вашем комментарии, и код в вопросе для этой строки не похожи на стандартный тип " ".

DavidP 13.09.2018 20:15

@DavidP хорошее место, скорректировано.

L23P 13.09.2018 22:04
0
5
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы используете буквы для столбцов, когда вам нужно использовать числа. У вас есть:

ActiveSheet.Range(Cells(B, 2), Cells(C, 2)).Copy 

Но B и C не являются переменными, и функция Cells ищет там индекс столбца. Замените B и C на 2 и 3 соответственно.

Другие вопросы по теме