Моя проблема заключается в том, что мне нужно открыть несколько файлов Excel с помощью VBA (для Excel 2007) и извлечь данные.Все файлы, которые я хочу открыть, называются «profit for January.xlsx», «profit for February.xlsx» и т. Д., При этом меняется только название месяца, поэтому я хочу открыть файл с именем «profit for *».,В папке есть еще один файл с именем «totalcome.xlsx», который я не хочу открывать.
Если возможно, мне нужен код для извлечения данных из файлов в папке, где бы она ни находиласьпотому что я посылаю этот код своим коллегам, чтобы они поместили их в свои папки, которые имеют одинаковые форматы имен файлов и т. д., но разные пути.
У меня есть код для извлечения данных, который работает, но он либо импортирует все данные в папке, либо ничего вообще!
Любая помощь по этому вопросу будет принята с благодарностью, как и ястажер пытается проникнуть в дверь, и это будет для меня большим прорывом!
Дополнительная информация
Пока у меня есть код ниже (Я не включил дим, потому что я чувствовал, что они могут быть ненужными?), Который я взял с других веб-сайтов.Я также обнаружил, что, пытаясь открыть все файлы в папке, он пытается открыть сам!Если бы кто-нибудь мог предложить, как улучшить это, я был бы очень благодарен.Я не использую VBA очень долго, и считаю это назначение довольно сложным!
Окно с ошибкой, которое появляется иногда, говорит, что мне нужен «объект» для переменной sfilename, и яне уверен, как это сделать, не испортив другую часть кода.
sub import data ()
ChDir ThisWorkbook.Path
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set sfolder = objFSO.GetFolder(ThisWorkbook.Path)
For Each sfilename In sfolder.Files
If sfilename <> "Total Revenue.xlsx" Then
Workbooks.Open Filename:= _
sfilename *'open the file*
Set sfilename = ActiveWorkbook *'set the file name as sfilename, so the single piece of code will work with the copy-loop*
b = Sheets.Count *'for the data-import loop*
Call ImportData *'call in the loop*
sfilename.Close *'close the file*
End If
Next
end sub