我可以让 VBA 根据用户的需要改变它自己的代码吗?

Can i make VBA change it's own code according to the user's needs?

就 VBA 和一般编程而言,我有点像初学者,所以请尽量让您的回答简单明了。这是我的代码的一部分:

 Sub Makro2()

 Dim XXX As Workbook
 Dim YYY As Workbook
 Set XXX = Application.Workbooks.Open("C:\aaa.xlsx")
 Set YYY = Application.Workbooks.Open("C:\bbb.xlsx")
 n = XXX.Sheets(1).Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count

XXX.Sheets(1).Activate
Range("A3:A" & n + 1).Select
Selection.Copy
YYY.Sheets(1).Activate
Range("C3").Select
ActiveCell.PasteSpecial Paste:=xlPasteValues

XXX.Sheets(1).Activate
Range("N3:N" & n + 1).Select
Selection.Copy
YYY.Sheets(1).Activate
Range("H3").Select
ActiveCell.PasteSpecial Paste:=xlPasteValues

End Sub

现在这段代码对我有用,但我的同事需要将 Range("N3:N" & n + 1) 复制到 Range("J3"),而不是像我这样的 "H3"。据我了解,模块是硬编码的,所以我不知道这是否可能。我能否编写一段代码,根据用户的需求改变之前的一段代码?如果没有,有什么解决办法吗?

您可以考虑允许用户输入宏。这可以采用输入框的形式,或工作表的特定部分(或专用于该目的的另一个工作表),在启动时将被宏读入(例如,单元格可以包含目标单元格名称) .

所以宏是一样的,但它的工作方式会因用户而异。