簡體   English   中英

Excel VBA - 從沒有最后一列的表中復制行

[英]Excel VBA - Copy row from table without last column

我最近將 Excel 工作表條目轉換為表格。 我需要將數據復制到 PowerPoint,如下面的代碼 1 所示。 但是,我不需要整行,只需要下面表 1 中除最后一列之外的所有列。

參考表 1,應復制的內容是:

1  | Lorem 

本來,當它不是一張桌子時,我可以做現在評論的事情。 但目前,它是一個表格,帶有 "ActiveSheet.ListObjects("table1").ListRows(1).Range" 我只能選擇整行(我想要整行減去最后一列)。 在其后面添加“.cells”只會選擇特定的單元格而不是行。

有沒有辦法在沒有最后一列的情況下從表中復制行,或者我必須更改復制和粘貼方法?

表一

ID | SomeData | HashForUpdates 
1  | Lorem    | b1Z3p          
2  | Ipsum    | a832H    

代碼 1

'Code 1
Dim ptApp As Object
Dim ptPres As Object
Dim ppSlide As Object
Dim totalCols As Integer

slideNo = 1
Set ptApp = CreateObject("PowerPoint.Application")
Set ptPres = ptApp.Presentations.Add
Set ptSlide = ptPres.Slides.Add(Index:=slideNo, Layout:=4)

totalCols = ActiveSheet.ListObjects("Table 1").ListColumns.Count    'ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
totalCols = totalCols - 1

Set aShape = ptSlide.Shapes.AddTable(1, totalCols)
Set Rng = ActiveSheet.ListObjects("table1").ListRows(1).Range 'ActiveSheet.Range(Cells(1, 1), Cells(1, totalCols))
Rng.Copy
aShape.Table.Cell(1, 1).Shape.Select
ptApp.ActiveWindow.View.Paste

使用Resize

Set rng = ActiveSheet.ListObjects("table1").ListRows(1).Range.Resize(,totalCols)

暫無
暫無

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

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