簡體   English   中英

在 Outlook 中使用 VBA,如何將 Excel 范圍轉換為表格?

[英]Using VBA in Outlook, how can I convert an Excel range to a table?

我正在嘗試使用從 Outlook 運行的 VBA 腳本將 Excel 范圍轉換為表格。

這在從 Excel 運行但從 Outlook 運行時有效:

ListObjects.Add(xlSrcRange, Range("A1:D10"), , xlYes).Name = "myTable"

我在 Outlook 中嘗試了下一個代碼,但失敗了:

Dim excApp As Excel.Application
Set excApp = GetObject(, "Excel.Application")    
excApp.ListObjects.Add(xlSrcRange, Range("A1:D10"), , xlYes).Name = "myTable"

此代碼拋出運行時錯誤 '1004' 對象 '_Global' 的方法 'Range' 失敗。

我想知道如何使代碼工作,但我也想了解為什么我的代碼失敗,以便我可以從中學習。 我很感激任何建議。 謝謝!

這是因為在 Excel 中您已經打開了一個工作表。 當您只粘貼Range("somerange")而不指定該范圍所在的工作表、工作簿或 Excel 應用程序對象時,ActiveSheet 是默認值。在 Outlook 中沒有activesheet這樣的東西,因此它不知道您的意思那個范圍。

你必須更明確:

Dim excApp As Excel.Application
Set excApp = GetObject(, "Excel.Application")  
Dim excWB as Object
Set excWB = excApp.Workbooks.Add  
excApp.ListObjects.Add(xlSrcRange, excWB.sheets("sheet1").Range("A1:D10"), , xlYes).Name = "myTable"

或者類似的東西

簡而言之,excel 應用程序有工作簿,工作簿有工作表,工作表有范圍。

暫無
暫無

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

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