如何使此宏捕获最新数据?


-1

我记录了一个宏及其工作原理。问题在于它捕获了绝对单元而不是动态单元。让我解释。

我有一个将灯具复制到的估算页面。在其中一个单元格中,它将是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文件的链接

Answers:


0

我无法访问您链接到的文件,但建议您查看一下 Worksheet.Name以获取工作表的名称(用您的话来说就是标签)。

然后,您可以使用该值从该工作表上的列获取值。

另一方面,可能只是您需要使用类似

With ActiveSheet
    .Range("A1:A38") = .Name
End With

没有原始工作簿就很难看到。

我要说的是,宏记录器为这种操作生成的代码通常既冗长又晦涩,并且通常只需几行编写良好的VBA即可完成。

我欣赏这似乎是您迈出的一大步,但是网上使用Excel VBA可以提供很多帮助,因此它可能会有益于您查看自己在做什么,并尝试编写适合自己的代码。


你能告诉我为什么你不能下载链接吗?它只是我测试过的文件共享链接。至于修复,不知道如何实现。
DanM

@DanM可能正在使用防火墙设置。
Raystafarian

不在我可以在其中打开第三方代码的PC上,不要仅仅为了尝试通过iPad上的TeamViewer访问我的办公室PC,对不起:)
Lunatik 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.