我有四個子例程,每個子例程都將一個指定的外部文件從該文件複製到工作簿中的一個工作簿中。對於3/4潛艇,這個效果很好。然而,第四個小組卻給了我目的地空白的結果。代碼在所有四個子目錄中都是相同的,只是文件名已更改。我看到可能導致此錯誤的最大區別在於所涉及的源工作簿受到保護。我使用我的sub解鎖它,然後複製這些文件。添加手錶到源顯示了整個範圍內「變體/空」VBA:將單元格從一個工作簿複製到另一個工作簿會產生空白結果
' declare variables
Dim financialReportBook As Workbook
Set financialReportBook = Workbooks.Open(FileNavPrompt.financialFilePath)
Dim financialSheet As Worksheet
Set financialSheet = FileNavPrompt.mainBook.Sheets("Financial Status")
Dim copyRange As String
copyRange = "A1:AA5000"
' unprotect workbook
financialReportBook.Unprotect ("{password removed}") ' unprotect workbook for copying
' pull data from report
financialSheet.Cells.Clear ' start with a clean slate
financialSheet.Range(copyRange).Value = financialReportBook.Sheets(1).Range(copyRange).Value
financialSheet.Range(copyRange).NumberFormat = financialReportBook.Sheets(1).Range(copyRange).NumberFormat
' close report
financialReportBook.Close False
' unrelated code continues below...
Q1:爲什麼使用4個獨立的潛艇,當你可以在一個簡單的循環內完成所有操作?問題2:您未提供最低數量的代碼來診斷此問題。特別是'FileNavPrompt'和相關成員是什麼?這是一個自定義的clsas對象還是帶有模塊級變量的單獨模塊(例如'.financialFilePath','.mainBook'等)?如果它正在爲其他3工作,我會採取其中一個,並嘗試循環它... –
我沒有使用循環,因爲我想保持文件操作完全分開,爲了能夠彼此稍後打開/關閉某些進口產品。我想我說過全局變量是什麼,但我一定是把它們遺漏了。 'FileNavPrompt'是另一個連接了全局變量的模塊。它是從哪裏調用的。 'financialFilePath'是一個包含要打開的文件位置的字符串。 'mainBook'是'ThisWorkbook'的簡單引用。 – kfriede
您正在檢查哪條線以查看空白區域? –