繁体   English   中英

隐藏工作表上的Excel / Visual Basic宏

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM