我正在编写一行代码,作为更复杂的程序的一部分,该程序无法正常工作。我是VBA的新手所以请耐心等待......
基本上,我提示用户选择一个单元格,然后将其分配给变量'celNm'。
然后我执行以下操作:
celNm.EntireRow.Copy
celNm.EntireRow.Insert
接下来,由于特定于程序的原因(我假设celNm
将位于命令[不同位置]之后的同一单元格),我想向上移动单元格选择,所以它现在位于最近复制的行上方。我使用以下行来执行此操作:
celNm.Offset(-1, 0).Select
然而,这不起作用。
该计划的下一步是在此位置创建一个列表。但是,程序仍然在先前位置(在所选单元格中)创建列表。为什么是这样?
答案 0 :(得分:1)
celNm.Offset(-1,0).Select
仅选择celNm以上的单元格。它不会改变celNm的值。要更改celNm的值,您需要以下内容:
Set celNm = celNm.Offset(-1,0)
我假设celNm被声明为Range。
答案 1 :(得分:0)
我相信您需要与ActiveCell
合作。这是一个例子(你想要将“A1”改为你的celNm变量):
Range("A1").Select
ActiveCell.Offset(-1, 0).Activate