假设我在宏中有这一行:
Sheets("sheet1").Range("A1").Value = Sheets("sheet2").Range("A5").Value
我怎样才能以编程方式(仅通过 VBA)使其在工作表 1 中插入A1和A2, A1,之间B2时不会因为行号被更改而搞砸?
避免此类问题的标准方法是使用Named ranges.
如果A1是结果的重要位置,则可以称为“myResult”,如果A5是输入的重要位置,则可以称为“myInput”。然后您的代码将更改为:
Sheets("sheet1").Range("myResult").Value = Sheets("sheet2").Range("myInput").Value
无论您现在插入多少列或行,上面的代码总是会找到相同的单元格。
还是我误解了这个问题?
如果这些范围实际上总是在表格A1中A5的相同相对位置,例如右下角,那么解决方案会有所不同。