我有一份连续的月度报告来说明我们的销售情况。 每天,我都会在一份报告中获得每个分支的销售额。我在单元格E1中保存了一个Vlookup公式,该公式将根据我的工作将报表中的信息移到另一张工作表中。我可以复制E1并将其粘贴到具有B-S列范围的一行中的每个单元格中,然后再次复制该行并粘贴值,以便它不会更改我的金额。第二天,我在下一行重复执行该过程,这样我可以得出每个分支机构以及整个公司每月的运行总额。我的每月图表始终围绕23行。(在Excel中为6-28行)
我需要一个可以执行以下操作的宏: 在1号,我运行宏,它将复制我的单元格E1并将其粘贴到B6-S6行中,然后复制该行并粘贴该行中的值。 然后,在每月的2号,我运行宏,然后重复执行,但在B7-S7行上。 然后,在每月的3号,我运行宏,然后重复执行,但在B8-S8行上。
这可能吗?
这就是我只录制一个宏所具有的。
Sub Charges()
'
'Charges Macro
'Run Formula for charges
'
' Keyboard Shortcut: Ctrl+Shift+C
'
Range("E1").Select
Selection.Copy
Range("B8:S8").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
答案 0 :(得分:0)
也许这样?您可以直接传输值,而无需复制和粘贴。
阅读this,了解如何通过避免选择/激活来提高代码效率。
Sub Charges()
Dim n As Long
n = WorksheetFunction.Max(6, Range("B" & Rows.Count).End(xlUp).Row + 1)
Range("B" & n & ":S" & n).Value = Range("E1").Value
End Sub
如果您要复制公式,然后用值覆盖,则可以使用此
Sub Charges()
Dim n As Long
n = WorksheetFunction.Max(6, Range("B" & Rows.Count).End(xlUp).Row + 1)
Range("E1").Copy Range("B" & n & ":S" & n)
Range("B" & n & ":S" & n).Value = Range("B" & n & ":S" & n).Value
End Sub