Excel用宏做循环

Sub宏1()''宏1宏''快捷键:Ctrl+a'Range("C1229").SelectSelection.AutoFillDestination:=Range("C... Sub 宏1()
'
' 宏1 宏
'
' 快捷键: Ctrl+a
'
Range("C1229").Select
Selection.AutoFill Destination:=Range("C1228:C1229"), Type:=xlFillDefault
Range("C1228:C1229").Select
Range("AK1228:AM1228").Select
Selection.Copy
Range("AQ1228").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
上面是我在EXCEL中录制的一个宏

现在要求做循环,比如下一个应该是这样:
Range("C1228").Select
Selection.AutoFill Destination:=Range("C1227:C1228"), Type:=xlFillDefault
Range("C1227:C1228").Select
Range("AK1227:AM1227").Select
Selection.Copy
Range("AQ1227").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

也就是说,括号里所有的数值减去1,直到("C20")、("C19:C20")、("AK19:AM19")、("AQ19")为止,请各位高手帮助,谢谢!
展开
 我来答
帐号已注销
推荐于2016-01-21 · TA获得超过8613个赞
知道大有可为答主
回答量:3242
采纳率:66%
帮助的人:2861万
展开全部
Sub 宏1()
Dim r&
For r = 1228 To 19 Step -1
With Range("C" & r + 1)
.AutoFill .Cells(0, 1).Resize(2), xlFillDefault
End With
Range("AK" & r & ":AM" & r).Copy
Range("AQ" & r).PasteSpecial xlPasteValues, xlNone, False, False
Next
Application.CutCopyMode = False
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
enjoyllonely
2011-08-19 · TA获得超过2.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:60%
帮助的人:7434万
展开全部
dim i
for i=1229 to 2 step -1
range("C" & i).select
Selection.AutoFill Destination:=Range("C" & i-1 & ":C" & i), Type:=xlFillDefault
Range("C" & i-1 & ":C" & i).Select
Range("AK" & i-1 &":AM" & i-1").Select
Selection.Copy
Range("AQ" & i-1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
next

以上只是根据你的代码修改,只是为了循环,不考虑你原代码的准确性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
绿衣人敲门
推荐于2016-08-06 · 知道合伙人软件行家
绿衣人敲门
知道合伙人软件行家
采纳数:18765 获赞数:63777
毕业于西北大学计算机网络技术专业,现在在西安电力学院进行网络推广维护工作!

向TA提问 私信TA
展开全部
Sub 宏名称()
Dim x%
For x = 2 To 30 Step 1
If Sheet1.Cells(x, 1) <> "" Then
Sheet2.Cells(x, 1) = Sheet1.Cells(x, 1)
Sheet2.Cells(x, 2) = Sheet1.Cells(x, 3)
End If
Next
Dim y%
For y = 2 To 30 Step 1
If Sheet2.Cells(y, 1) = "" Then
Sheet2.Rows(y).Delete
End If
Next
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhzhf3076
2011-08-19 · TA获得超过2280个赞
知道小有建树答主
回答量:851
采纳率:0%
帮助的人:516万
展开全部
x=19
for y=1229 to x
Range("C"&y).Select
Selection.AutoFill Destination:=Range("C"&y-1&":C"&y), Type:=xlFillDefault
Range("C"&y-1&":C"&y).Select
Range("AK"&y-1&":AM"&y-1).Select
Selection.Copy
Range("AQ"&y-1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
next
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangyinglix
2011-08-19 · TA获得超过498个赞
知道小有建树答主
回答量:623
采纳率:0%
帮助的人:277万
展开全部
你直接说意思就行了,你录制的宏比较麻烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式