【发布时间】:2021-10-12 09:50:51
【问题描述】:
在 VBA 方面,我完全是新手,并且根据在线教程创建了我的 VBA。 一点背景知识:我的数据集由 3 张具有不同信息的工作表组成,如果数据以特定标准输入到第一个工作表中,则整行然后移动到第二个工作表中,可以进一步输入。如果在第二张纸上选择了一个选项,则整行必须移动到第三张纸。所以基本上我只会拥有任何一条记录的 1 个副本。
我遇到的问题是,当该行从表 1 剪切到表 2 时,我无法在不创建重复副本的情况下编辑表 2 中的特定数据,就好像没有粘贴一样即使粘贴的数据在那里并且是可编辑的,也能找到。
如果有帮助,我将使用索引行。 剪切的单元格被粘贴到新工作表中,并从原始工作表中删除该行
请有人,任何可以解决此问题的人将不胜感激。
这里是剪切/粘贴的代码
Private Sub
CommandButton4_Click()
a = Worksheets("Database").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To a
If Worksheets("Database").Cells(i, 16).Value = "Retention" Then
Worksheets("Database").Rows(i).Cut
Worksheets("Archive").Activate
b = Worksheets("Archive").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("Archive").Cells(b + 1, 1).Select
ActiveSheet.Paste
Worksheets("Database").Activate
Rows(i).EntireRow.Delete
MsgBox "ARCHIVE RECORDS UPDATED", vbInformation
End If
Next
End Sub
(这是重复的 2x 工作表)–
【问题讨论】:
-
应该也说这是VBA Excel
-
如果您在询问代码方面的帮助问题,您需要为我们提供...
-
抱歉,这里是剪切/粘贴 Private Sub CommandButton4_Click() a = Worksheets("Database").Cells(Rows.Count, 1).End(xlUp).Row For i 的代码= 2 To a If Worksheets("Database").Cells(i, 16).Value = "Retention" Then Worksheets("Database").Rows(i).Cut Worksheets("Archive").Activate b = Worksheets( "存档").Cells(Rows.Count, 1).End(xlUp).Row Worksheets("Archive").Cells(b + 1, 1).Select ActiveSheet.Paste Worksheets("Database").Activate Rows( i).EntireRow.Delete MsgBox "ARCHIVE RECORDS UPDATED", vbInformation End If Next End Sub (这对 2x 工作表重复)
-
请不要张贴在 cmets 中。编辑您的原始问题并使用提供的代码标签。
-
很抱歉作为答案发表评论,还没有足够的代表发表评论。只是一些提醒。迈克尔,您不需要为 Excel VBA 中的大多数内容选择单元格和激活工作表。它会减慢你的代码。您还可以阅读 Application.EnableEvents、Application.ScreenUpdating 和 Application.Calculation 以获得一般的速度增益。这可能是一个很好的阅读:How to avoid using Select in Excel VBA
标签: excel vba duplicates paste