我记录了一个宏及其工作原理。问题在于它捕获了绝对单元而不是动态单元。让我解释。
我有一个将灯具复制到的估算页面。在其中一个单元格中,它将是A或B或C ...等。当我记录宏时,当我在A选项卡上时,它将捕获绝对数据(如A),但是当我加载了B选项卡,宏放入了“ A”。因此例程如下。我将大胆地展现我所需要的动态。
Sub FixColumns() ' ' FixColumns Macro '
'
Range("A1").Select
ActiveCell.Offset(1, 15).Range("A1").Select
ActiveCell.FormulaR1C1 = "=Estimating1!R[3]C[-10]"
ActiveCell.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = **"C"**
ActiveCell.Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:A38"), Type:= _
xlFillDefault
ActiveCell.Range("A1:A38").Select
ActiveWindow.SmallScroll Down:=-45
ActiveCell.Offset(0, -14).Range("A1").Select
ActiveCell.FormulaR1C1 = "=Estimating1!R[8]C[3]"
ActiveCell.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = **"His Dressing"**
ActiveCell.Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:A38"), Type:= _
xlFillDefault
ActiveCell.Range("A1:A38").Select
End Sub
因此,在上面的宏中,当我记录宏时,从C选项卡中捕获了“ C”和“他的着装”。因此,当我加载“ D”选项卡时,它应该捕获“ D”和“他的浴室”,但不会这么做。它记得我加载C选项卡时记录宏的时间。所以说的地方ActiveCell.FormulaR1C1-"A"
,我需要它来捕获我已加载的任何A / B / C / D选项卡。我能正确解释吗?在哪里说“ A”或“ C”或宏中的任何内容,需要在单元格的实际位置上保持动态。
这是带有fixcolumns宏的文件的链接,带有带有fixcolumn宏 的excel文件的链接