#excel #vba
#excel #vba
Вопрос:
Попытка загрузить файлы из href и сохранение данных с помощью цикла на отдельных вкладках на листе на диске C.
Спасибо Тиму Уильямсу за помощь в написании кода, пока я не загружу файлы href. Но ввод кода для копирования загруженных данных в Excel. у меня это не работает.
Sub download()
Dim ie As InternetExplorer
Dim el As Object, els As Object
Set ie = New InternetExplorer
With ie
.Visible = True
.Navigate2 "http://www.nafed-india.com/Home/ProcDispoDetails"
While .Busy Or .readyState < 4: DoEvents: Wend
End With
'Note: querySelectorAll unless you only want one element
Set els = ie.document.querySelectorAll("a[href^='/Documents/ProcurementDisposal']")
For Each el In els
Debug.Print el.href
Dim i As Long
Workbooks.Open Filename:="C:UsersDesktopSample.xlsx"
For i = 1 To ThisWorkbook.Sheets.Count
Workbooks.Worksheets(i).Range("a1").Select
ActiveCell.FormulaR1C1 = el.herf(i)
Next i
ActiveWorkbook.Save
ActiveWindow.Close
Next
End Sub
Ответ №1:
Попробуйте что-то вроде этого. Настройте в соответствии с конкретной ситуацией.
Sub download()
Dim ie As InternetExplorer, i As Long
Dim el As Object, els As Object, wb As Workbook, smpl as workbook
Set smpl = Workbooks.Open(Filename:="C:UsersDesktopSample.xlsx")
Set ie = New InternetExplorer
With ie
.Visible = True
.Navigate2 "http://www.nafed-india.com/Home/ProcDispoDetails"
While .Busy Or .readyState < 4: DoEvents: Wend
End With
'Note: querySelectorAll unless you only want one element
Set els = ie.document.querySelectorAll("a[href^='/Documents/ProcurementDisposal']")
i = 1
For Each el In els
Debug.Print el.href
Set wb = Workbooks.Open(el.href)
wb.sheets(1).Range("A1").CurrentRegion.Copy smpl.Sheets(i).Range("A1")
wb.close false
i = i 1
Next el
smpl.Save
End Sub
Примечание: вежливо принимать любые ответы, которые помогли вам — это помогает людям, которые придут позже и посмотрят на ваш вопрос, узнать, какие ответы сработали. Потратьте несколько минут, чтобы сделать это для ваших предыдущих сообщений — если вы пренебрегаете этим, вы можете обнаружить, что справка иссякла…
Комментарии:
1. Еще раз спасибо за решение, Тим Уильямс! Я принял ответ. Отличная помощь!
2. Я получаю ошибку времени выполнения здесь wb.Sheets(1).Range («A1»). CurrentRegion. Скопируйте smpl. Листы (i).Диапазон («A1»)
3. Теперь я получаю ошибку компиляции, определяемый пользователем тип не определен для «Dim ie как InternetExplorer». Ранее я получал ошибку времени выполнения для » wb.Sheets (1).Range («A1»). CurrentRegion. Скопируйте smpl. Листы (i). Диапазон («A1″)»
4. Определяемый пользователем тип не определен обычно указывает на то, что вы не добавили требуемую ссылку в свой проект VBA.
5. Да, Уильямс, он работает с помощью Tools> reference> Microsoft internet Controls включен. Однако некоторые данные частично копируются в Excel, а остальные не копируются. пожалуйста, нужна помощь, чтобы понять это.