假设我在excel中有这种格式的文件:
A B C
1 2 3
4 5 9
其中A,B和C是excel中的标准列标题。 C中的值定义为excel中的sum(A,B)。我想要做的是自动为A和B输入一系列数字,并在新表格中打印C的值。以上只是我想要做的一个例子。 C的公式可以是复杂的函数(即sum(A + B)* 0.1 /(1000))。任何想法如何自动化?
答案 0 :(得分:1)
以下VBA代码会执行您要求的操作(它会使用值替换公式 - 如果您不希望这样,则使用Paste
代替PasteSpecial
)。
Sub copyAtoB()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim r1 As Range
Application.ScreenUpdating = False ' stops screen flickering during update
Set sh1 = ActiveWorkbook.Sheets("Sheet1") ' your source sheet
Set sh2 = ActiveWorkbook.Sheets("Sheet2") ' your destination sheet
Set r1 = Range(sh1.[a1], sh1.[c1].End(xlDown)) ' select from A1 to last contiguous cell in C
sh1.Activate ' make sure source sheet is active
r1.Copy ' copy the range defined above
sh2.Activate ' make the destination sheet active
sh2.[a1].PasteSpecial Paste:=xlValues ' copy just the values (no equation)
Application.ScreenUpdating = False ' turn screen updating on again
End Sub
如何根据您的需求进行调整应该是显而易见的 - 如果不是,请使用注释来要求澄清。