gpt4 book ai didi

excel - 自动化 VBA Excel 宏

转载 作者:行者123 更新时间:2023-12-04 21:41:18 25 4
gpt4 key购买 nike

我对此不太擅长,所以我过去常常手动添加这些规则,因为这些规则仅适用于已填充的单元格。

有什么办法可以自动化吗?谢谢。

Range("D22:G22").Select

Selection.AutoFill Destination:=Range("D22:G23"), Type:=xlFillDefault

Range("D22:G23").Select

Range("I22").Select

Selection.AutoFill Destination:=Range("I22:I23"), Type:=xlFillDefault

Range("I22:I23").Select

Range("M22:N22").Select

Selection.AutoFill Destination:=Range("M22:N23"), Type:=xlFillDefault

Range("M22:N23").Select

Sheets("BN1").Select

Range("C20:G20").Select

Selection.AutoFill Destination:=Range("C20:G21"), Type:=xlFillDefault

Range("C20:G21").Select

Range("K20:L20").Select

Selection.AutoFill Destination:=Range("K20:L21"), Type:=xlFillDefault

Range("K20:L21").Select

Sheets("BUM1").Select

Range("C20:G20").Select

Selection.AutoFill Destination:=Range("C20:G21"), Type:=xlFillDefault

Range("C20:G21").Select

Range("K20:L20").Select

Selection.AutoFill Destination:=Range("K20:L21"), Type:=xlFillDefault

Range("K20:L21").Select

Sheets("Express").Select

Range("C20:G20").Select

Selection.AutoFill Destination:=Range("C20:G21"), Type:=xlFillDefault

Range("C20:G21").Select

Range("K20:L20").Select

Selection.AutoFill Destination:=Range("K20:L21"), Type:=xlFillDefault

Range("K20:L21").Select

Sheets("DL1").Select

Range("C20:G20").Select

Selection.AutoFill Destination:=Range("C20:G21"), Type:=xlFillDefault

最佳答案

我猜你用宏记录器记录了上面的代码。宏记录器非常适合发现晦涩命令的语法,但很难整理其输出。

考虑你的最后几句话。

Sheets("Express").Select
Range("C20:G20").Select
Selection.AutoFill Destination:=Range("C20:G21"), Type:=xlFillDefault
Range("C20:G21").Select
Range("K20:L20").Select
Selection.AutoFill Destination:=Range("K20:L21"), Type:=xlFillDefault
Range("K20:L21").Select
Sheets("DL1").Select
Range("C20:G20").Select
Selection.AutoFill Destination:=Range("C20:G21"), Type:=xlFillDefault

我可以将这些语句替换为:
With Sheets("Express")
.Range("C20:G20").AutoFill Destination:=.Range("C20:G21"), Type:=xlFillDefault
.Range("K20:L20").AutoFill Destination:=.Range("K20:L21"), Type:=xlFillDefault
End With
With Sheets("DL1")
.Range("C20:G20").AutoFill Destination:=.Range("C20:G21"), Type:=xlFillDefault
End With

我想你会同意看起来更整洁,但需要一点解释。

考虑:
With Sheets("Express")
.Range("C20:G20").AutoFill Destination:=.Range("C20:G21"), Type:=xlFillDefault
.Range("K20:L20").AutoFill Destination:=.Range("K20:L21"), Type:=xlFillDefault
End With
With说我希望将 Sheets("Express") 添加到以点开头的任何内容的前面,直到 End With .

所以这四行完全一样:
  Sheets("Express").Range("C20:G20").AutoFill Destination:=Sheets("Express").Range("C20:G21"), Type:=xlFillDefault
Sheets("Express").Range("K20:L20").AutoFill Destination:=Sheets("Express").Range("K20:L21"), Type:=xlFillDefault

考虑:
Sheets("Express").Select
Range("C20:G20").Select
Selection.AutoFill Destination:=Range("C20:G21"), Type:=xlFillDefault
Range("C20:G21").Select

宏记录器记录了您执行的每个步骤。您切换到工作表“Express”,选择了范围 C20:G20,然后将该范围复制到一行。

如果可以避免,最好不要选择任何内容,因为它会减慢宏的速度,并且通常会使代码更难理解。

AutoFill 方法的语法是:

SourceRange.AutoFill Destination:=DestinationRange, Type:=Type

因此,可以像我一样将所有参数包含在一行中。

考虑:
Type:=xlFillDefault

宏记录器已将类型设置为 xlFillDefault它告诉编译器通过查看源数据来猜测所需的填充类型。在 VB Help 中查找 AutoFill,您将获得所有填充类型的列表。选择你想要的。

总结

这是您寻求的详细程度吗?如有必要,请回来提出更多问题。

关于excel - 自动化 VBA Excel 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9393029/

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