我打算通过单击Excel中的按钮打开一个对话框来选择HTML文件。
打开文件后,我需要将其保存为具有相同名称的mht文件,并将其保存在同一目录中。然后将mht文件导入excel(它保持格式化)。
到目前为止,我只看到了代码:
'.Navigate C://file path'
这是不好的,因为文件总是在不同的位置。
我到目前为止的代码是:
Sub Convert_HTML()
Dim ie As Object
Dim MyFile As String
Set ie = CreateObject("internetexplorer.application")
With ie
.Navigate MyFile = Application.GetOpenFilename("html Files (*.html), *Jackstandwithfoil*.html", 1, "Open Jackstand with foil HTML File")
.Visible = True
End With
ie.Visible = True
End Sub
这会让我在对话框中选择HTML文件,打开IE(我工作的首选浏览器)。 但我让IE试图打开“http://false/”而不是选择的文件。 如果我单击关闭/取消,则会出现相同的网址。
我正在尝试自动化Excel表单以便工作,因此我们不必打开文件,然后每天多次“另存为”,这是客户证明所需的。
我在许多论坛上搜索了所需的相同/类似代码,因此非常感谢任何帮助!
答案 0 :(得分:0)
更改强>
。导航MyFile = Application.GetOpenFilename(" html文件(* .html), Jackstandwithfoil .html",1,"使用贴膜HTML文件打开Jackstand&# 34)
要强>
MyFile = Application.GetOpenFilename("html Files (*.html), *Jackstandwithfoil*.html", 1, "Open Jackstand with foil HTML File")
.Navigate MyFile
此模板在Excel中创建一个新工作簿,并设置对第一个工作表的引用。
Const WorkBookPath = "C:\My Excel Files\Sales.xls"
Const WorkSheetName = "Sales Data"
Dim xlApplication, xlWorkbook, xlWorksheet
Set xlApplication = CreateObject("Excel.Application")
xlApplication.Visible = True
Set xlWorkbook = xlApplication.Workbooks.Open()
Set xlWorksheet = xlWorkbook.Worksheets(1)
xlWorksheet.Range("A1") = 10
xlWorkbook.Save
xlWorkbook.Close
xlApplication.Quit
答案 1 :(得分:0)
好的,所以我没有设法保存为mht。看着很多论坛并成为一名新手,我无法获得任何工作,绝对无法阅读/理解它来改变它。
我只是把它复制到了&直接从用户选择的HTML文件粘贴到当前工作簿(我发现每次打开一个新工作簿)。
您可能需要创建一个宏来更改工作表的布局,或者像我一样设置一个宏。
Sub Import_JST_woFoil()
Dim OST As Workbook
Dim IE As Object
Dim MyFile As String
MyFile = Application.GetOpenFilename() 'user selects file
Set OST = ThisWorkbook 'Doesn't need to be renamed. Rename to your Excel file name but MAKE SURE you rename the OST part above
Set IE = CreateObject("InternetExplorer.Application")
If MyFile = False Then Exit Sub 'Exits if Cancel or Close is clicked
IE.Visible = True 'Opens IE window
IE.Navigate MyFile 'Opens/views web page from file selected
'Wait to load page
Do While IE.ReadyState <> 4
DoEvents
Loop
'Below selects all & copy on webpage
IE.ExecWB 17, 2
IE.ExecWB 12, 2
Sheets("JST without Foil").Select 'Selects separate tab (Rename JST without Foil to whatever your tab is called)
ActiveSheet.Paste Range("A1") 'Pastes from cell A1
IE.Visible = False 'closes IE
Sheets("OutputForm").Select 'Selects original tab (Rename OutputForm to whatever tab you want to see at the end of the macro). Delete this line if you want to stay on the tab you paste the web page on to.
End Sub
我可以在以后提供线程的链接(我没有这个)。
如果您只想搜索HTML文件而不搜索其他类型,请替换
MyFile = Application.GetOpenFilename()
使用
myFile = Application.GetOpenFilename("HTML Files (*.HTML), *<common filename>*.HTML", 1, "Open <common name> File")
希望这有助于其他人!