【发布时间】:2015-08-14 06:04:33
【问题描述】:
我正在尝试编写一个代码来检查 D 列中名为 All 的主表中的数字(例如 780101),如果它符合条件,它会复制整行并插入 (不粘贴)它到另一个具有条件名称的工作表(例如 780101),从第 6 行开始。 我拥有的代码不像我想要的那样工作。它不会复制所有符合条件的行,有时会插入空白行。
Sub Insert()
For Each Cell In Sheets("All").Range("D:D")
If Cell.Value = "780101" Then
matchRow = Cell.Row
Rows(matchRow & ":" & matchRow + 1).Select
Selection.Copy
Sheets("780101").Select
Rows("6:6").Select
Selection.Insert Shift:=xlDown
End If
Next
End Sub
我刚开始学习 VBA,所以如果可能的话,工作表的名称将成为单元格值的标准(代码仅针对一张工作表 - 780101,但有 20 个工作表不同的名字)。
【问题讨论】:
-
a) 这些实际上是看起来像数字而不是实数的文本吗?
If Cell.Value = "780101" ...与If Cell.Value = 780101 ...不同。 b)如果下面的行中没有任何内容(您包含在副本中),那么是的,您将得到空白行。 -
@Jeeped a) 不,它们是数字。公式中的引用对结果有何影响? b) 主表中没有空白行。这些数字仅按与这些数字 (D) 位于同一列的“部门”一词的行进行划分。
-
re: 引用数字与数字 - 你不妨问问
.Value和.Value2之间的区别。