簡體   English   中英

使用VBA打開和保存非Excel文件

[英]Opening and Saving non Excel files with VBA

我有一些在打開時在Excel中打開的文件,但它們本身不是Excel文件(打開時它們只是在轉換)。 我希望能夠將這些文件中的某些信息提取到另一個Excel工作表中,但是由於它們不是Excel文件,因此我不能僅鏈接文件。

我想使用VBA打開這些文件(它們將作為Excel文件打開),然后將它們另存為永久性的獨家文件,以便我可以根據需要使用它們。

要打開文件,我有以下代碼:

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運行它,那么你就應該能夠使用的SaveAs方法(記錄在這里 )的Workbook ,像這樣

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(FileName,FileFormat,Password,WriteResPassword,ReadOnlyRecommended,CreateBackup,AccessMode,ConflictResolution,AddToMru,TextCodepage,TextVisualLayout,Local)*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM