突出显示非活动工作簿中的活动单元

我在一个工作簿中运行macros,在每次运行后,我需要它去到一个非活动工作簿,并突出显示活动单元格(或者,在我去另一个工作簿之前活动的单元格)。 这就是我想要的:

myWorkbook.Sheets("mySheet").Activate Worksheets("mySheet").ActiveCell.Interior.ColorIndex = 8 

我不断收到第二行的错误,说对象不支持这个属性或方法。 工作表已打开,但当前运行此代码时并不是我所在的工作表。

如果可能的话,我可以解决这个问题,也可以将光标/select向下移动到下一个单元格?

谢谢!

编辑:我也试过myWorkbook.Sheets("mySheet").ActiveCell.Interior.ColorIndex = 8

活动的单元格对象不属于工作表对象 。 这是因为只有一个活动的单元格对象,而不是每个表单。

一旦你使MySheet激活,你可以像这样直接调用ActiveCell:

工作示例

 myWorkbook.Sheets("mySheet").Activate ActiveCell.Interior.ColorIndex = 8 

我同意@BruceWayne。 避免调用SelectActivate如果可以的话。

你正在使用ActiveCell ,我build议不要这样做。 避免使用。select/。 .Activate

如果您试图突出显示活动单元格,则需要将macros放在工作表模块中:

 Private Sub Worksheet_SelectionChange(ByVal target As Range) Target.Interior.ColorIndex = 8 End Sub 

正如所指出的,在你的代码中,你不会select一个单元格,所以你会得到错误。

此外,你会注意到这个方法保持所有其他单元格突出显示。 如果您没有其他细胞需要突出显示,请在其中一行之前添加cells.interior.colorindex = 0 。 另外, 这是一个解决这个问题的线程 。 你可以做你没有VBA的尝试。