我可以让 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"。据我了解,模块是硬编码的,所以我不知道这是否可能。我能否编写一段代码,根据用户的需求改变之前的一段代码?如果没有,有什么解决办法吗?
您可以考虑允许用户输入宏。这可以采用输入框的形式,或工作表的特定部分(或专用于该目的的另一个工作表),在启动时将被宏读入(例如,单元格可以包含目标单元格名称) .
所以宏是一样的,但它的工作方式会因用户而异。
就 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"。据我了解,模块是硬编码的,所以我不知道这是否可能。我能否编写一段代码,根据用户的需求改变之前的一段代码?如果没有,有什么解决办法吗?
您可以考虑允许用户输入宏。这可以采用输入框的形式,或工作表的特定部分(或专用于该目的的另一个工作表),在启动时将被宏读入(例如,单元格可以包含目标单元格名称) .
所以宏是一样的,但它的工作方式会因用户而异。