В настоящее время у меня есть этот код, который будет извлекать файлы из папки, открывать каждый, печатать свое имя в первый столбец моего «основного файла», закрывать его и прокручивать вся папка.Скопировать ячейку J1 из нескольких файлов и вставить в столбец мастер-файла
В каждом открывшемся файле есть информация в ячейке J1, которую я хотел бы скопировать и вставить в столбец 3 моего «основного файла». Код работает, но будет только вставлять желаемую информацию из J1 в C2 снова и снова, чтобы информация продолжала записываться. Мне нужно увеличить список, чтобы информация из J1 была напечатана в той же строке, что и имя файла.
Любые идеи?
Sub LoopThroughDirectory()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim MyFolder As String
Dim Sht As Worksheet
Dim i As Integer
MyFolder = "C:\Users\trembos\Documents\TDS\progress\"
Set Sht = ActiveSheet
'create an instance of the FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
'get the folder object
Set objFolder = objFSO.GetFolder(MyFolder)
i = 1
'loop through directory file and print names
For Each objFile In objFolder.Files
If LCase(Right(objFile.Name, 3)) <> "xls" And LCase(Left(Right(objFile.Name, 4), 3)) <> "xls" Then
Else
'print file name
Sht.Cells(i + 1, 1) = objFile.Name
i = i + 1
Workbooks.Open fileName:=MyFolder & objFile.Name
End If
'Get TDS name of open file
Dim NewWorkbook As Workbook
Set NewWorkbook = Workbooks.Open(fileName:=MyFolder & objFile.Name)
Range("J1").Select
Selection.Copy
Windows("masterfile.xlsm").Activate
'
'
' BELOW COMMENT NEEDS TO BE CHANGED TO INCREMENTING VALUES
Range("D2").Select
ActiveSheet.Paste
NewWorkbook.Close
Next objFile
End Sub
чтобы найти ошибку, добавить точку останова в первой строке и использовать 'Step Into (F8)' в перемещаться по строкам. Ошибка будет вызвана в строке, вызывающей ее. Сообщите эту информацию после проверки ее (отредактируйте вопрос). Одна из возможностей заключается в том, что вы используете 'Sht.Cells', который будет терпеть неудачу, если' Worksheet' действительно является «Chart». –
@Byron Спасибо! Я ответил после игры с текстом. Любые советы по новой проблеме? – Taylor
На этом этапе ваш вопрос вошел в область 100 вопросов на этом сайте 'Как мне скопировать из [где-нибудь] и вставить в [где-нибудь]'. Я бы рассмотрел некоторые из этих вопросов для общих советов. В частности, для этого кода, почему бы вам не сделать копию/вставку внутри 'Else', прежде чем вы увеличиваете' i'? Затем вы можете просто использовать «Ячейки (i + 1,2)» для вставки рядом с именем файла. Также непонятно, почему вы дважды открываете файл. –