gpt4 book ai didi

vba - 简化 VBA 代码

转载 作者:行者123 更新时间:2023-12-02 16:08:51 25 4
gpt4 key购买 nike

我有一个宏,可以从同一工作簿中的两张工作表中读取和写入数据。

是否可以清理和简化代码/语句以提高可读性并帮助调试工作?

这些语句变得太长,即使使用空格下划线方法来使用多行,也难以阅读。

变得笨拙的声明示例:

Range("mx_plan").Cells(WorksheetFunction.Match(sortedAircraft.Item(i).tailNumber, Range("aircraft")), WorksheetFunction.Match(currentWeekId, Range("week_id")) + weekly_hours_col_offset) = (acft_hoursDNE / acft_weeksRemaining)

我有意避免明确引用单个单元格或范围。

最佳答案

您的陈述有 225 个字符!

调试它是不可能的,因为这是一条指令做了太多的事情,而且你只能在一行代码上放置断点......所以你不能中断和检查任何代码您正在使用的中间值。

分解:

tailNumber = sortedAircraft.Item(i).tailNumber
aircraft = someSheet.Range("aircraft").Value
planRow = WorksheetFunction.Match(tailNumber, aircraft)

weekId = someSheet.Range("week_id").Value
planColumn = WorksheetFunction.Match(currentWeekId, weekId)

Set target = someSheet.Range("mx_plan").Cells(planRow, planColumn + weekly_hours_col_offset)
target.Value = acft_hoursDNE / acft_weeksRemaining

请记住声明(Dim)您正在使用的所有变量(使用Option Explicit来确保代码不会编译,如果您在变量名称上犯了一个拼写错误),对所有标识符使用有意义的名称(这些名称可以告诉读者它们的用途 - 当原因时使用注释 仅从代码来看并不明显)。

通过将其分解为多个较小的步骤,您不仅可以使其更易于阅读/维护,还可以使其更易于调试,因为将在特定行的特定指令中引发运行时错误,您将能够更轻松地查明错误的输入。

关于vba - 简化 VBA 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35545652/

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