问题标签 [listobject]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vba - VBA - 遍历一系列工作表中的所有 ListObject
我有一个表格条件格式宏(感谢 Jeeped),我想扩展它以遍历一系列工作表中的所有表格。我怀疑这不是最有效的方法,但它是我能拼凑起来的最好的方法,即使那样它也不起作用。到目前为止,我被困在以下两点。非常感谢任何帮助!
1)设置 ws 等于多个工作表代号(例如Set ws = Worksheets(5,6,7)
)
2) 设置没有运行时错误的范围Set myRange = ws.ListObjects.DataBodyRange
会产生“运行时错误'438':对象不支持此属性或方法”
当前代码是:
excel - 将一组值粘贴到 ListObject(Excel 表)上会破坏 Listobject
在我的一个工作表中,我有一个
那应该用一组值替换表中的数据
这可能是无关紧要的,但在这样做之前,我调整了列表对象的大小(我逐行扩展,因为如果我一次这样做,我会覆盖我的表格下方的内容而不是移动它。)
如果要插入任何数据,我会覆盖这些值
BAM,我的表/ListObject 不见了! 为什么会发生这种情况,我该如何避免?
vba - 使用 byref 类型不匹配
以下代码创建了一个编译时错误消息“类型不匹配”:
也试过:
还:
只需朝正确的方向快速推动即可使此 JustAdd 子例程正常工作
excel - 如何将多个行从一个 Excel 表(ListObject)附加到另一个?
我有两张桌子:
结果表:
Table_2 是一个临时表 (ListObject),它使用数据连接查询数据库中的条目。
Table_1 是一个表 (ListObject),它充当条目的集合列表。它是分开的,因为它 (1) 缩短了 Table_2 中的查询时间,并且 (2) 有一些编程编辑。
我有将 Table_2 复制到 Table_1 的 VBA 代码,然后更新 Table_2 的连接字符串以不包括日期在 Table_1 范围内的条目。结果是 Table_2 只拉取新数据。
我的代码(正确)将数据从 Table_2 复制到 Table_1:
如果 Table_2(新条目)只有十几个条目,这将非常有用。有时,Table_2 会有几百个条目,实际上需要 20 分钟才能完成。我怀疑这是因为我正在对 .Copy 和 .Paste 进行几百次迭代。
有没有办法批发:复制所有 Table_2 并使其成为 Table_1 的一部分?我觉得我想做的事情应该只需要 1 秒以编程方式执行,而不是 20 分钟。我没有条件或例外。我想要 Table_2 中的一切,这应该很容易。我可能会以错误的方式去做。任何帮助表示赞赏。谢谢。
excel - ListRows.Add() 过滤列表时出错
我有以下从 Worksheet_Change 事件调用的代码(适用于 Excel 2007 和更高版本):
基本上,当用户在 Excel 表中进行某些更改时,会在当前行下创建一个新行,其中包含数据的副本,并且有几个 ID 字段交叉引用两行,所以我知道它们是相关的。
这工作正常,但是当列表被过滤并发生事件时,我在 ListRows.Add 上收到此错误:
Run-time error 1004: cannot shift cells in a filtered range or table
我理解这个错误,我想我可以解决它,先移除过滤器;但这对用户很粗鲁,迫使他们事后重做过滤器(这可能很复杂)。
有什么可以优雅地解决这个问题?是否有可能以某种方式创建新行但保留(或自动恢复)过滤器?
vba - 如何使用 B 列中的参数对 ListObject VBA 中 A 列上的行进行排序
我在 Excel 中有一个表格,它是通过数据库中的 Listobject 宏填充的。
我可以通过以下代码对表格进行排序:
“状态”有多个整数值,范围从 1 到 100。我想做的是根据行的状态和另一列对行进行排序。我遇到的问题是每个状态的“第二列”排序是不同的。
我想要创建的是一个类似“Gant”的表格,其中不同的日期列按每个状态的降序排序。例如 (DD-MM-YYYY)
等等这可能吗?
vba - Excel 2010、VBA 和 ListObjects 小计未在表更改时更新
因此,具有这种结构(从 A1 开始 - 显示片段 > 运行):
我编写了一些代码来在 ListObject 中转换该范围 (A1:D6),添加了 4 个新列和小计:
现在,如果您在新列的任何单元格上写一些数字,奇怪的是 TOTAL(小计)没有更新;但是如果您保存文件并重新打开它,它将起作用并且总数将更新。我错过了什么?
我已经尝试在 TotalCalculation 之后移动 ShowTotals,但行为保持不变。
如果我们现在从头开始重建工作表,并在应用前面代码中的样式后添加这段代码用于列 b、c 和 d 的小计:
我注意到 b、c 和 d 的小计有效,但 Tot1、Tot2 等无效。
似乎唯一的解决方法是在添加 ListObject 与创建它的引用之前构造原始表。有人知道更好的解决方案吗?
提前致谢 :)
c# - VSTO Excel 互操作 ListObject.AddEx (2010+) 到 ListObject.Add (2003) 转换
作为我正在开发的 Excel 帮助实用程序的一部分,我正在将大型常用 Excel 电子表格移动到 MS SQL 以提高性能以及通过 SSIS 包进一步验证数据。
作为其中的一部分,我编写了一个基本的数据库连接类,它模仿数据 --> 从其他来源 --> 从 SQL Server 按钮。我使用 Office 2013 的副本在家中进行了这项工作,并且我预计会出现一些转换问题,主要是 Excel 互操作 API 已更改并且无法选择升级到 Office 2010 或更高版本。我的主要问题似乎是新命令 AddEx 的转换:
MyListObjects.AddEx(ExcelAPI.XlListObjectSourceType.xlSrcQuery, MyConnection, Type.Missing, ExcelAPI.XlYesNoGuess.xlYes,StartRange);
到 2003/2007 版本按照 MSDN 添加(https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.listobjects.add(v=office.11 ).aspx )
//2007 命令//
我得到的例外是:
我最初的想法是更改 ExcelAPI.XlYesNoGuess 枚举,所以我尝试手动设置值,但随后遇到编译器错误。我尝试一次删除一个参数Type.Missing
来跟踪罪魁祸首,但这似乎导致的错误多于解决的错误,尽管 MSDN 声明这些都是可选的。
连接字符串组成如下:
方法测试调用参数:
完成后对此进行了更多研究。看来我的代码在家工作得很好,修改后的添加。但是从工作中我仍然得到:
arrays - 循环遍历表列并将最大值或最小值存储在数组变量中
我正在尝试使用 VBA 循环遍历 excel 中的表,并将每列的最大值存储在数组变量中以供以后在程序中使用。
我采取了许多类似于下面代码片段的方法,但都没有成功。供参考:mainTable
是脚本前面定义的 Public ListObject 变量mainCols
,也是之前定义的 Public Long 变量,它存储 的宽度mainTable
:
上面的代码执行没有错误,但总是返回0
重要的是我不对列/表位置进行硬编码,以便用户可以复制/粘贴不同维度的数据集并运行脚本而不会出错。此外,假设用户可以在具有他们想要的任何列标题的数据集上运行它。
vba - 如何使用 Excel ListObject 表(前列表)查找(和编辑)特定行
让我们想象一下,在ListObject
表格行中,我想找到一些字符串或一些模式,如果找到,我想格式化整行。我的示例可能是通过 VBA 和 ACE OLEDB 从记录集中转储到 excelListObject
表中,我想对其进行格式化:
例如我想
- 将表格中出现 Total 一词的整行加粗。
- 在 ??? 上方插入一行,表示一个组的三个字母字符串出现。
我可能会设法提出在标准非ListObject
表上运行的代码并为整个工作表添加行,但我不知道如何搜索和更改ListObject
表中的行。