“#This Row”在使用VBA-BUGselectExcel表格的当前行中的其他单元格时会出现运行时错误?

我有:

  • Excel 2013
  • 一张名为“TableA”
  • 三列 (列标题是“位”,“字节”和“Kilo”)
  • 和几随机数据

macros启动时,任何给定行中的单个单元格可能被选中,我想要返回相同行中相应单元格的值,但在列“位”中。

Excel具有引用表格单元格的function

TableA[[#This Row], [Bit]] 

“位”是一个列,这将完美的把戏。 但是,它似乎并没有在VBA中工作! 比如这个:

 ActiveSheet.Range("TableA[[#This Row], [Bit]]").Select 

导致“运行时错误”1004“:应用程序定义或对象定义的错误”

另外,我认为这样的事情可能会起作用:

 ActiveSheet.Cells("TableA[Bit]", ActiveCell.Row).Select 

但也失败了, “运行时错误13:types不匹配”

你知道另一种简单的方法来通过引用想要的列标题/标题加上当前选中的单元格的行来select表格中的单元吗?

谢谢你的帮助!

尝试这个

 [TableA[@Bit]].Select 

或这个

 ActiveSheet.Cells(ActiveCell.Row, Range("TableA[Bit]").Column).Select 

我想你需要这个..

  Sub TableA() Dim oSh As Worksheet Set oSh = ActiveSheet With oSh.ListObjects("TableA") 'Select entire table .Range.Select 'Select just the data of the entire table .DataBodyRange.Select 'Select third column .ListColumns(3).Range.Select 'Select only data of first column .ListColumns(1).DataBodyRange.Select 'Select just row 4 (header row doesn't count!) .ListRows(4).Range.Select End With End Sub