[英]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.