Excel VBA获取和使用表名称

我遇到了Excel VBA的一个问题。

我应该做一个简单的任务,将“sheet2”中可变范围的单元格复制/粘贴到“sheet1”中相同的范围内。

在我的代码中有500行是太多了,但是我这样试着去“捕捉”variables的方面。

棘手的部分是,“sheet1”中的范围是一个表(从TFS创build)。

Sub CopyP() Sheets("Sheet1").Range("B3:F500").Value = Sheets("Sheet2").Range("B3:F500").Value SheetObject.ListObjects (ListObjectName) Range("NAME OF TABLE[Iteration Path]").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

[Iteration Path]是我的表的列名,如果“row”是空的,我想用这个参数检查这个列。

我知道代码远没有好或干净,但桌子给我一个很难复制。

有了这个代码,我得到了另一个问题:从TFS创build表,没有问题,复制到,但表的名称是variables(好像TFS创build名称),所以除非我把名字手动在代码中, “程序”不能执行,因为缺less范围。

没有find办法得到表名的返回莫名其妙。

但是我觉得我只是走错路而已,也许有人能把我带上正轨。

我的另一个想法是遍历表2中的行,以获取尽可能多的数据,然后通过迭代将它们复制到表中。 但我想我会在那里的表名相同的问题。

我使用googlefind的每一条信息,都会谈到用户可以“命名”表格的表格。 在我的情况下,我不能,所以我必须使用TFS用于我的表的名称。

除了你的问题之下的我的意见,我只是在记事本中input。 请修改它以适应您的需要。

这会给你在activesheet所有表的名称。 如果有多个表,那么你会得到多个名字。 (未通过电话发送)

 Sub sample() Dim objLB As ListObject, TableName As String For Each objLB In ActiveSheet.ListObjects TableName = objLB.Name Exit For Next Range(TableName & "[Iteration Path]").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub