簡體   English   中英

使用VBA,如何在不打開xlsx文件的情況下將xlsx文件導入xlsm?

[英]With VBA, how to import a xlsx file into a xlsm without opening the xlsx file?

這是我當前代碼的一部分:

顯式期權

Sub ImportData()

    Dim wkbCrntWorkBook As Workbook
    Dim wkbSourceBook   As Workbook
    Dim fNameAndPath As Variant

    Set wkbCrntWorkBook = ActiveWorkbook
    fNameAndPath = Application.GetOpenFilename(FileFilter:="Excel 2007, *.xlsx; *.xlsm; *.xlsa", Title:="Select File To Import")
    If fNameAndPath = False Then Exit Sub
    Call ReadDataFromCloseFile(fNameAndPath)


    Set wkbCrntWorkBook = Nothing
    Set wkbSourceBook = Nothing

End Sub

Sub ReadDataFromCloseFile(filePath As Variant)
    On Error GoTo ErrHandler
    Application.ScreenUpdating = False

    Dim src As Workbook

    Set src = Workbooks.Open(filePath, True, True)

' COPY DATA FROM SOURCE (CLOSE WORKGROUP) TO THE DESTINATION WORKBOOK.
' GET THE TOTAL ROWS FROM THE SOURCE WORKBOOK.
Dim lastLine As Long   ' last line from source
lastLine = src.Worksheets(source_sheet_1_name).Range("A" & Rows.count).End(xlUp).Row
Worksheets("abc").Range("A3:A40")).Value= src.Worksheets("cde").Range("A4:A41").Value


' CLOSE THE SOURCE FILE.
src.Close False             ' FALSE - DON'T SAVE THE SOURCE FILE.
Set src = Nothing

ErrHandler:
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

根據 ,數據源工作簿將無法打開。 但是,在文件瀏覽器中單擊文件名以選擇要導入的文件后,excel便打開了該文件。

有誰知道我應該如何實現目標(無論上一段中的鏈接如何)?

(我的目標是在用戶指示要導入的文件(不打開要導入的文件)之后,根據某些標准自動將xlsx文件中的某些列復制/導入到xlsm文件中。但是,在選擇文件后雙擊導入,僅打開要導入的文件。打開要導入的文件后,程序不繼續導入相應的列。)

您可以在這里做幾件事。 需要以一種或另一種方式打開文件。 但是,使其盡可能地鎖定/隱藏將是關鍵。

您可以嘗試一些不同的方法:

1)在打開工作簿之前,設置Application.ScreenUpdating = False ,然后在關閉子項之前最后確保將其設置回True

2)使用src = workbooks.open...打開工作src = workbooks.open...嘗試設置Application.Visible = False 完成導入過程並關閉源工作簿后,請確保將其設置為true: Application.Visible = True

這應該允許您打開工作簿,保持更新狀態,以便沒人能看到發生了什么,並以最小的阻力/可見性關閉工作簿。

可能導致錯誤或完全無法正常工作的原因可能來自您嘗試調用的工作簿工作表名稱。 我看不到變量的賦值,因此lastLine = src.Worksheets(source_sheet_1_name)實際上應該在其中說出工作表名稱,例如lastLine = src.Worksheets("Sheet1")

試一下,讓我知道。

暫無
暫無

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

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