使用VBA打开和保存非Excel文件
我有打开时在Excel中打开的文件,但它们本身不是Excel文件(打开时只是转换)。我希望能够将这些文件中的一些信息拉到另一个Excel工作表中,但由于它们不是Excel文件,我不能只链接这些文件 我想用VBA打开这些文件(它们将以Excel文件的形式打开),然后将它们保存为永久的excle文件,以便我可以随心所欲地使用它们 要打开该文件,我有以下代码:使用VBA打开和保存非Excel文件,vba,excel,Vba,Excel,我有打开时在Excel中打开的文件,但它们本身不是Excel文件(打开时只是转换)。我希望能够将这些文件中的一些信息拉到另一个Excel工作表中,但由于它们不是Excel文件,我不能只链接这些文件 我想用VBA打开这些文件(它们将以Excel文件的形式打开),然后将它们保存为永久的excle文件,以便我可以随心所欲地使用它们 要打开该文件,我有以下代码: Option Explicit Declare Function ShellExecute Lib "shell32.dll" _ Alia
Option Explicit
Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" ( _
ByVal hWnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Function OpenAnyFile(FileToOpen As String)
Call ShellExecute(0, "Open", FileToOpen & vbNullString, _
vbNullString, vbNullString, 1)
End Function
Sub OpenFile()
Call OpenAnyFile("C:\Filename")
End Sub
但是,我不确定如何将现在打开的文件保存在此代码中。如果您将此代码放入Excel VBE并从中运行,那么您应该能够使用
另存为方法(文档化)来保存工作簿
Dim owb As Workbook
With Application
.DisplayAlerts = False
.ScreenUpdating = False
.EnableEvents = False
End With
fname = "Filename goes here (include .extension)"
fpath = "Path goes here"
Set owb = Application.Workbooks.Open(fpath & "\" & fname)
With owb
.SaveAs fpath & "\" & fname & ".xlsx", 51
.Close
End With
根据MSDN文档保存为参数
表达式.SaveAs(文件名、文件格式、密码、WriteResPassword、ReadOnlyRecommended、CreateBackup、AccessMode、冲突解决、AddToMru、TextCodepage、TextVisualLayout、Local)*
如果使用工作簿.Open
或工作簿.OpenText
而不是使用API调用,会发生什么情况?@Rory它在excel中打开文件,但格式不正确。当您打开文件并将其转换为正确的excel文件时,会发生一些特殊的过程/转换。然后您可能需要指定一些参数。文件的格式是什么?@Rory它们是.TDMS文件。它如何知道我要保存新打开的excel文件,而不是运行宏的excel文件?谢谢。这将起作用,但我不能使用工作簿。打开(无论出于何种原因,格式不会保留)