![](/img/trans.png)
[英]Using VBA in Excel, how to I paste a Table in Outlook then convert the table to text?
[英]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.