vba - VBA 中的时间循环 - 遍历列
问题描述
有两张纸(sheet1 和 sheet2)。
只要工作簿打开,就需要每 4 分钟刷新一次 sheet1。
然后我需要每 4 分钟将 sheet1 中的 C 列中的值复制到 sheet2 中的 C 列。
由于在 sheet1 中每 4 分钟会出现一次新值,因此我希望每次都将这些值复制到 sheet2 中的新列中。
我正在使用以下代码。我的代码的问题是变量 i 每次都会重新启动,并且我无法使用 Public i 将其启动为模块外部的值。
Sub copyvalues()
Dim i As Long
i = 3
Sheets(2).Columns(i).Value = Sheets(1).Range("C11:C90").Value
i = i + 1
Application.OnTime Now + TimeValue("00:04:00"), "copyvalues"
End Sub
解决方案
尽管您提到不能将变量声明i
为 Public,但这应该可以:
例如,以下工作没有问题:
Public i As Long
Sub test()
Debug.Print i
Application.OnTime Now + TimeValue("00:00:01"), "Module1.test"
i = i + 1
End Sub
尝试以下操作:
Public i As Long
Public SubIsRunning As Boolean
Sub initiatesubs()
If Not SubIsRunning = True Then
i = 3
Call copyvalues
SubIsRunning = True
End If
End Sub
Sub copyvalues()
Workbooks(REF).Sheets(2).Columns(i).Value = Workbooks(REF).Sheets(1).Range("C11:C90").Value
i = i + 1
Application.OnTime Now + TimeValue("00:04:00"), "Module1.copyvalues" 'assuming the sub is in Module1
End Sub
推荐阅读
- php - 我想访问根目录外文件夹中的 index.php(nginx 窗口)
- python-3.x - 如何在熊猫中绘制此箱线图?
- javascript - 如何限制列表parant div的高度并使内容可滚动?
- pdf - mPDF 库问题:创建 pdf 后图像大小发生变化
- node.js - 如何使用nodejs从json文件中获取总值的平均值
- vue.js - 如何在 Vue js 中制作像小部件这样的未来构建器
- php-curl - PHP 通过 curl_exec 执行有 Ajax 请求不工作
- python - AttributeError:“按钮”对象没有属性
- javascript - 如何根据参数设置微光组件的初始状态?
- c++ - MinGw 无法从 cmake 编译测试文件