我可以根据用户的需求让VBA更改自己的代码吗?

时间:2016-02-24 14:52:23

标签: 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.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”。据我所知,模块是硬编码的,所以我不知道这是否可能。我可以编写一段代码,根据用户的需要改变以前的代码吗?如果没有,有办法吗?

1 个答案:

答案 0 :(得分:0)

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

因此宏将是相同的,但它会根据用户的不同而有所不同。