[英]Excel/Visual Basic Macro on Hidden Sheets
我已经编写了一个宏,该宏接受一些源数据并将其写入到几张纸上,这些ID希望在宏运行之前和之后保持隐藏状态。 编写宏后,当我运行它时,它只更新每张纸上的几条记录(例如,在第一个隐藏的工作表上,它更新了1000条记录中的21行。这是什么原因呢?他们都没有?我也没有收到任何错误。我尝试过
Application.ScreenUpdating = False
Worksheets("FT Raw").Visible = True
Worksheets("L1").Visible = True
Worksheets("L2").Visible = True
Worksheets("L3").Visible = True
Worksheets("L4").Visible = True
但是仍然只有21行得到更新。
更新:这是在每个工作表上运行的代码
endval = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To endval
If Not Sheets("FT Raw").Cells(i, "A") = "" Then
splitted = Split(Sheets("FT Raw").Cells(i, "A"), ",")
Sheets("FT Raw").Cells(i, "B") = splitted(0)
Sheets("FT Raw").Cells(i, "C") = splitted(1)
Sheets("FT Raw").Cells(i, "D") = splitted(2)
If Sheets("FT Raw").Cells(i, "D") = "1" Then
Sheets("L1").Cells(j, "A") = Trim(splitted(0))
Sheets("L1").Cells(j, "B") = Trim(splitted(3))
j = j + 1
End If
End If
Next i
确定编辑。 您需要在结束时间计算中指定Sheet(“ FT Raw”)。
试试这个set endval = Sheets("FT Raw").Cells(Sheets("FT Raw").Rows.Count, 1).End(xlUp).Row
然后继续执行代码的其余部分。
(你也可以使用endval = Sheets("FT Raw").UsedRange.Rows.Count
只有当你没有空白单元格在列的顶部)
幸运的是,您不必完全隐藏这些工作表即可运行代码。 一定要这样做以进行调试,但是在愤怒中运行时没有必要。
这与隐藏工作表无关-即使隐藏工作表,您仍然可以使用VBA对其进行修改。 (只有在受保护的情况下,才需要取消保护它。)
看看您的代码,看不到j
的初始化位置-在这种情况下,表FT raw
D列等于"1"
。
我建议您在顶部初始化j,例如,如果要使用添加行
j = Sheets("L1").Range(Rows.Count, 1).End.(xlUp).Row + 1
然后,在运行宏(进行检查)之后,使用值为1
的自动过滤器过滤原始工作表中的列D,并查看其是否与工作表L1
的条目数匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.