gpt4 book ai didi

vba - 将公式沿列复制到最后一行,而不使用 dim

转载 作者:行者123 更新时间:2023-12-03 01:59:49 25 4
gpt4 key购买 nike

我有一个 Excel VBA 宏,它执行大量 vlookups,我需要将公式复制到列中。如果我记录宏,那么它只会复制到相同数量的行。我每周运行这个文件,行数总是不同的。我编辑 VBA 代码来复制该列,但它只能运行一次,然后其他列就会出错。这是我的代码的一部分:

 ActiveCell.FormulaR1C1 = _
"=IF(NOT(ISERROR(VLOOKUP(RC[-23],'[GEM Crossover.xlsx]GEM_Crossover'!C1:C2,2,FALSE))),VLOOKUP(RC[-23],'[GEM Crossover.xlsx]GEM_Crossover'!C1:C2,2,FALSE),IF(NOT(ISERROR(VLOOKUP(CONCATENATE(RC[-16],LEFT(RC[-14],1)),'[PRIVATE SWITCH.xlsx]Sheet1'!C1:C3,2,FALSE))),VLOOKUP(CONCATENATE(RC[-16],LEFT(RC[-14],1)),'[PRIVATE SWITCH.xlsx]Sheet1'!C1:C2,2,FALSE),IF(AND(LEFT(RC[-14],1)=""P"",RC[-12]=""I""),RC[-16],IF(AND(LEFT(RC[-14],1)=""P"",RC[-12]=""X""),RC[-16],RC[-14]))))"
Range("X2").Select
Selection.AutoFill Destination:=Range("X2:X" & Cells(Rows.Count, 2).End(xlUp).Row)
Columns("X:X").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

上面的代码工作得很好,但是当我将此代码用于另一列时,为什么它不起作用?:

Range("B2").Select
ActiveCell.FormulaR1C1 = "=RC[-1]&RC[2]"
Range("B2").Select
Range("B2").AutoFill Destination:=Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row)
Columns("B:B").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

我将自动填充目标设置为与第一个代码相同。我刚刚将列从 X 更改为 B,但它不起作用。我做错了什么吗?

最佳答案

在以下行中:

Range("B2").AutoFill Destination:=Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row)

您将获得 B 列的最后一行 (2):

Cells(Rows.Count, 2).End(xlUp).Row

但这与您尝试自动填充的列相同,因此它可能是空的(无论如何,在 B2 下方)。尝试使用不同的列来确定最后一行。 A,也许?

Range("B2").AutoFill Destination:=Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row)

关于vba - 将公式沿列复制到最后一行,而不使用 dim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32192924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com