以下宏從已關閉的工作簿導入名爲「已審覈」的特定工作表,導入該表並將其重命名爲「數據」。宏工作正常。但是,我希望宏覆蓋現有的「數據」表,這是代碼失敗的地方。我試圖使用On error resume NeXT .. on error goto 0
聲明。但它只是添加了一張新表,並沒有覆蓋現有的「數據」表。導入時忽略並覆蓋現有工作表
Sub Import()
Dim wsmaster as workbook
Dim rd as range
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If wsmaster Is Nothing Then
ThisWorkbook.Sheets.Add
Set wsmaster = ActiveSheet
Set rd = wsmaster.Range("A1")
wsmaster.Name = "Data"
filespec = Application.GetOpenFilename()
Set wb = Workbooks.Open(Filename:=filespec)
Sheets("Reviewed").Activate
Cells.Copy rd
wb.Close
End If
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
嗨rohrl77。嗯,兩個版本似乎都沒有工作。我相信第二個缺少sheet.add語句,第一個語句中沒有with-statement。 – Saud
嗨,沙特,你對「With」陳述的第一個評論是正確的。我更新了它以取出它。這不是必需的。第二個不添加工作表bcs我假定工作簿中已經存在「數據」工作表...所有代碼都會清除單元格。然後您可以寫入該表,留下名稱和工作表。 – rohrl77
我收到以下錯誤消息:當我運行第一個宏時出現「下標超出範圍」。 Sry,也許我沒有解釋清楚,但它應該添加一個「數據」表,如果它尚不存在,並覆蓋它,如果它存在。 – Saud