求excel宏代码高手帮忙
D20单元格中的值如果等于1,那就执行复制命令将B20:B1000中的值复制粘贴值到B21:B1001中,同时给一个变量参数加1,复制命令完成后要求强制跳转到if函数处再...
D20单元格中的值如果等于1,那就执行复制命令将B20:B1000中的值复制粘贴值到B21:B1001中,同时给一个变量参数加1,复制命令完成后要求强制跳转到if函数处再次进行判断,相当于是个循环判断,判断条件D20中的值如果不等于1,那就等待一分钟后跳转到IF函数处再次进行判断,循环终止的条件为变量参数的值大于2000时,(D20中的值是个公式,根据其他条件得到1或0值),请高手帮忙弄个宏,谢谢
下面这断是我做试验的,发现D20第一次等于1时确实能执行复制命令,但再次运行宏时那个值就没有用了,始终只执行到END IF处就结束宏,顺便问一下高手这是什么原因
Sub Macro1()
If Range("D20").Value = 1 Then
End
End If
Range("B20:C1848").Select
Application.CutCopyMode = False
End Sub
我是根据网页导入的数据进行判断是否复制,网页导入数据我设置的是一分钟刷新一次,如果这个宏能结合到这个网页导入命令里,在刷新时自动执行一次复制命令,那宏就不需要循环执行,只定义一个可调用模块,嫁接入网页导入命令 展开
下面这断是我做试验的,发现D20第一次等于1时确实能执行复制命令,但再次运行宏时那个值就没有用了,始终只执行到END IF处就结束宏,顺便问一下高手这是什么原因
Sub Macro1()
If Range("D20").Value = 1 Then
End
End If
Range("B20:C1848").Select
Application.CutCopyMode = False
End Sub
我是根据网页导入的数据进行判断是否复制,网页导入数据我设置的是一分钟刷新一次,如果这个宏能结合到这个网页导入命令里,在刷新时自动执行一次复制命令,那宏就不需要循环执行,只定义一个可调用模块,嫁接入网页导入命令 展开
2个回答
展开全部
尝试:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Macro1()
' Macro1 Macro
' 快捷键: Ctrl+Shift+K
'
Dim 参数 As Integer
Do While 参数 < 2000
If ActiveSheet.Range("D20").Value = 1 Then
ActiveSheet.Range("B20:1000").Copy
ActiveSheet.Range("B21").PasteSpecial
Else
Sleep (60000)
End If
参数 = 参数 + 1
End Sub
没有测试
追问
运行总出错,SLEEP函数没定义,Application.Wait (Now + TimeValue("0:0:5"))我用这个代替了,又说DO没有LOOP对应,能否帮忙弄个完整的准确的
追答
end sub 上面加一句loop
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询