繁体   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