我对VBA很新。
我的财务电子表格变得非常复杂,并且充斥着可能最初设置得更好的手动复制和粘贴任务。
我的任务相当简单(我认为):我有8个单元格要复制并粘贴到(在上个月的硬编码值中设置动态预算),然后将此过程重复到其他6个具有相同单元格图案的同一列中的目标。
例如:
(1)复制 - >粘贴值H4:H5,H8,H10& H13:H16
(2)在H23上重复:H24(H4:H5 + 20行),H27(H8 + 20行),H39(H10 + 20行),H32:H35(H13:H:16 + 20行)< / p>
(3)然后在列中多次重复相同的复制和粘贴模式:
H
4 **Paste Value**
5 **Paste Value**
6 Leave alone
7 Leave alone
8 **Paste Value**
9 Leave alone
10 **Paste Value**
11 Leave alone
12 Leave alone
13 **Paste Value**
14 **Paste Value**
15 **Paste Value**
16 **Paste Value**
Skip H:17:H22
H
23 **Paste Value**
24 **Paste Value**
25 Leave alone
26 Leave alone
27 **Paste Value**
28 Leave alone
29 **Paste Value**
30 Leave alone
31 Leave alone
32 **Paste Value**
33 **Paste Value**
34 **Paste Value**
35 **Paste Value**
这是我为第一组记录的宏:
Sub RFC_Paste_Month_Values()
'
' RFC_Paste_Month_Values Macro
Range("H4:H5").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("H8").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("H10").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("H13:H16").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Copy and "Paste Special- Values" of set budgets '
End Sub
非常感谢任何帮助。谢谢!
泰德
答案 0 :(得分:1)
以下是代码的短版本,其中包含许多宏录制器生成的内容。它可以进一步改进,但你需要进一步解释它在做什么:
更新的答案
Sub RFC_Paste_Month_Values()
'
' RFC_Paste_Month_Values Macro
'
Dim i As Integer
With ActiveSheet
For i = 0 To .UsedRange.Rows.Count Step 19 '
.Range(.Cells(4 + i, 8), .Cells(5 + i, 8)) = .Range(.Cells(4 + i, 8), .Cells(5 + i, 8)).Value
.Cells(8 + i, 8) = .Cells(8 + i, 8).Value
.Cells(10 + i, 8) = .Cells(10 + i, 8).Value
.Range(.Cells(13 + i, 8), .Cells(16 + i, 8)) = .Range(.Cells(13 + i, 8), .Cells(16 + i, 8)).Value
Next i
End With
End Sub
再次......我没有机会测试它,但我认为它应该适合你。