【发布时间】:2013-09-20 04:08:41
【问题描述】:
我目前正在编写一个 Excel VBA 宏脚本,其中将对活动单元格进行简单的 TRUE 或 False 测试。我的问题是,直到列表末尾我才能使它工作。它只运行一次并结束程序。我需要这个 VB 脚本来执行列表底部的 IF 和 ELSE 测试。
问题描述:
假设我有一个从 A1 到 A9999 的日期列表,并且在它旁边 (F1:F9999) 还有一个包含文本的列表。 F1:F9999 列表仅包含两个值。 (a) 相同的日期和 (b) 不同的日期。
在列表 F1:F9999 中执行真假测试。
如果活动单元格的值等于文本“SAME DATE” (TRUE),它将忽略并移至列表中的下一项,然后再次执行编号 1。
- 如果活动单元格值等于文本“SAME DATE”(FALSE),它将在其上方插入一行,然后移动到列表中的下一项,然后再次执行编号 1
- TRUE 或 FALSE 测试将一直运行到列表末尾。
- TRUE 或 FALSE 测试在到达列表底部时将停止运行。
- 顺便说一下,列表中的项目数不一致。我只是将 F1:F9999 放在那里作为示例。
这是我的代码!
Sub IFandElseTest()
If ActiveCell.Value = "Same Date" Then
Range(Selection, Cells(ActiveCell.Row, 1)).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.Offset(1, 0).Select
Else:
ActiveCell.Offset(1, 0).Select
Range(Selection, Cells(ActiveCell.Row, 1)).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
End Sub
如果你能在这方面帮助我,不胜感激。
【问题讨论】:
-
不要使用
.Select,而是使用反向循环。即使用 for 循环并从下向上移动(9999 到 1) -
如果你能对它进行编码@SiddharthRout 那就太好了,这样 Kareen 就可以对其进行测试。我认为她缺乏知识。 :) 只是说..
-
@BenMichaelOracion:是的,我可以编写代码(实际上代码已经准备好了),但我希望 Kareen 先尝试一下 :)
-
说实话,我真的不知道该怎么做@SiddharthRout。我所能做的就是 IF 和 Else 语句。被困在这里3小时。但重复它直到 IF 和其他直到列表的最后一项是我不知道的。顺便说一下,列表中的项目数并不一致。我只是把 E1:E9999 放在那里作为示例。