1

假设我在宏中有这一行:

Sheets("sheet1").Range("A1").Value = Sheets("sheet2").Range("A5").Value

我怎样才能以编程方式(仅通过 VBA)使其在工作表 1 中插入A1A2, A1,之间B2时不会因为行号被更改而搞砸?

4

1 回答 1

1

避免此类问题的标准方法是使用Named ranges.

如果A1是结果的重要位置,则可以称为“myResult”,如果A5是输入的重要位置,则可以称为“myInput”。然后您的代码将更改为:

Sheets("sheet1").Range("myResult").Value = Sheets("sheet2").Range("myInput").Value

无论您现在插入多少列或行,上面的代码总是会找到相同的单元格。

还是我误解了这个问题?

如果这些范围实际上总是在表格A1A5的相同相对位置,例如右下角,那么解决方案会有所不同。

于 2013-01-02T08:11:35.403 回答