【发布时间】:2021-03-29 08:55:29
【问题描述】:
我以为我终于完成了我的工作簿,但是当我们将其付诸实践时出现了一个问题(令我沮丧)。
简而言之; 我使用自动过滤器(不在 vba 中)菜单来过滤仓库中的物品以及它们所在的货架。 当我过滤掉除了我想添加库存的货架之外的所有内容时,我添加的值(通过 VBA 编程按钮基本上复制“添加到库存”中的所有内容(又名“C4:C1000”行并将其添加到“当前有货”行(又名“D1:d1000”))被添加到错误的行。
我的解决方案是使用自动过滤器找到正确的货架,写下添加到库存中的数量,然后按下按钮。 按钮的 VBA 代码将(在我的新计划中)然后像以前一样执行,只是这次它会首先删除过滤器,像以前一样执行,然后重新应用过滤器。
我无法 - 就我的一生 - 弄清楚如何使用 VBA 代码重新打开自动过滤器。
我在网上进行了广泛搜索,但我能找到的最接近我想要的是以下代码:
Activesheet.range("a4").autofilter
这只会阻止我的代码在中途完成执行。
请帮忙!
其中一页的完整代码如下:
Sub AddtoInnTotalandclear() '该宏用于将所有金额 plottet 移动到“INN”列中。金额移至“TOTAL AMOUNT IN STORAGE”,同时清除“INN”列
'消除屏幕闪烁(第 1 部分,共 2 部分)
Application.ScreenUpdating = False
'删除工作表上的保护(注意!您必须在代码行中拥有当前密码才能工作)
ActiveSheet.Unprotect Password:="kirk"
'复制“inn”列中的值
范围("c4:c1000").复制
'将复制的值添加到“总金额”列中已有的值中
Range("d4:d1000").PasteSpecial Operation:=xlPasteSpecialOperationAdd
'清除“客栈”列
范围("c4:c1000").ClearContents
'禁用复制范围附近的行进 atnsa
Application.CutCopyMode = False
范围("d4:d1000").选择
Selection.Locked = True
'尽管文档被锁定,但允许使用自动过滤器 '& '重新激活密码保护
使用 ActiveSheet
.Protect Password:="kirk", AllowFiltering:=True
.EnableSelection = xlNoRestrictions
结束
'确定你完成后的最终目标
Worksheets("in").Range("c4").Select
'消除屏幕闪烁(第 2 部分,共 2 部分)
Application.ScreenUpdating = True
结束子
---- 当我按下激活此 VBA 代码的按钮时,我想删除/禁用自动过滤器,然后在整个过程完成后重新激活自动过滤器...
我需要一个 EXCEL JEDI 在这里给我一些合理的代码建议。请:)
【问题讨论】:
-
不清楚你做了什么。您是从工作表中完全删除了
AutoFilter,还是只在所有过滤列上删除了ShowAllData?? -
我进入 VBA 并将以下代码添加到 sub。 Activesheet.autofiltermode=false
-
如果您的代码有问题,那么最好将其包含在您的问题中。
-
Tim:注意到了。我已经添加了完整的代码。
标签: excel vba autofilter