Excel 我可以让VBA更改它吗';根据用户自己的代码';她需要什么?

Excel 我可以让VBA更改它吗';根据用户自己的代码';她需要什么?,excel,vba,module,copy,paste,Excel,Vba,Module,Copy,Paste,对于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.SpecialCel

对于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”。据我所知,模块是硬编码的,所以我不知道这是否可行。我是否可以编写一段代码,根据用户的需要修改以前的代码?如果没有,有没有办法绕过它?

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


因此,宏是相同的,但根据用户的不同,它的工作方式也不同。

编写代码不是为了修改代码,而是编写参数化的代码。您可以在某个特定的“配置”单元中使用“N”(您同事的单元会说“J”),然后代码可以从该特定单元读取列并生成地址字符串。谢谢您的想法。这正是我需要的。