对于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”。据我所知,模块是硬编码的,所以我不知道这是否可能。我可以编写一段代码,根据用户的需要改变以前的代码吗?如果没有,有办法吗?
答案 0 :(得分:0)
您可以考虑允许用户输入宏。这可以采用输入框的形式,或者工作表的特定部分(或专用于该目的的另一个工作表),宏在启动时将被读入(例如,单元格可以包含目标单元名称) 。
因此宏将是相同的,但它会根据用户的不同而有所不同。