excel - 在任务计划程序中填充单元格的公式 (Excel 2013)
问题描述
我正在尝试在 excel 中创建任务计划程序。我将有一个开始月份和一个结束月份,但我想填写中间的时间段。例如,现在我的表如下所示:
+--------+-------+-----+-------+-----+-----+-----+-----+-----+
| Task | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug |
+--------+-------+-----+-------+-----+-----+-----+-----+-----+
| Task A | Start | | | | End | | | |
+--------+-------+-----+-------+-----+-----+-----+-----+-----+
| Task B | | | Start | End | | | | |
+--------+-------+-----+-------+-----+-----+-----+-----+-----+
| Task C | Start | | | | | End | | |
+--------+-------+-----+-------+-----+-----+-----+-----+-----+
对于“任务 A”,我想让单元格介于 Jan - 可能有一些文本,如“工作”或类似的东西。
所以决赛桌是这样的:
+--------+-------+------+-------+------+------+-----+-----+-----+
| Task | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug |
+--------+-------+------+-------+------+------+-----+-----+-----+
| Task A | Start | Work | Work | Work | End | | | |
+--------+-------+------+-------+------+------+-----+-----+-----+
| Task B | | | Start | End | | | | |
+--------+-------+------+-------+------+------+-----+-----+-----+
| Task C | Start | Work | Work | Work | Work | End | | |
+--------+-------+------+-------+------+------+-----+-----+-----+
这是一个动态变化的表格,因此无法对其中的文本进行硬编码。
更新:
因为此表是动态的,所以此表链接到另一个选项卡上的表。它使用拖过表格的简单公式“=Sheet1!B2”来提取数据。
解决方案
这是假设您的数据从单元格 A1 开始。如果没有,您将需要更改行和列计数器的 for 循环。
Sub fillTask()
Dim intRow As Integer, intStartFlg As Integer
Dim mySht As Worksheet
Set mySht = Sheets("Sheet1")
intStartFlg = 0
'get last row
intRow = mySht.Cells(mySht.Rows.Count, "A").End(xlUp).Row
'loop through each task
For i = 2 To intRow
'Clear previous loop
For j = 2 To 13
If mySht.Cells(i, j) <> "Start" Or mySht.Cells(i, j) <> "End" Then mySht.Cells(i, j).ClearContents
Next j
'loop through each month
For j = 2 To 13
If mySht.Cells(i, j) = "end" Then Exit For
If intStartFlg = 1 Then mySht.Cells(i, j) = "Work"
If mySht.Cells(i, j) = "Start" Then intStartFlg = 1
Next j
intStartFlg = 0
Next i
结束子
推荐阅读
- nginx - Kubernetes NodePort 服务随机出现网络不可达或挂起
- html - 有没有办法把这张登录卡移到中心
- qt - C++ QLineEdit 如何限制QLineEdit中输入的数字范围?
- excel - 使用同一行中不同列的结果
- python - 如何使用 apache-beam 读取数据帧
- javascript - 如何在 React.js 的 return 方法中编写 JS 代码
- go - Go 运行时错误:恐慌:运行时错误:无效的内存地址或 nil 指针取消引用
- python - 使用分类嵌入器包时出现问题
- python - 是否可以在端到端测试中使用 Selenium + Webdriver 模拟语音输入?
- git - 提交日历与 PC 时间不同步