vba - 如何在没有任何数据行的情况下读取 Excel 表/ListObject 中的计算列的公式

标签 vba excel calculated-columns listobject

我有一个以外部查询作为数据源的 ListObject,它返回 18 列。 ListObject 之前已添加了额外的 4 个计算列。

现在,ListObject有0个数据行,但是,虽然有0个数据行,但我似乎无法读取计算列的预定义公式。

如果我刷新数据源,并且数据源至少返回 1 行,则计算列的公式将变得可读。同样,如果我在非计算列之一中手动输入数据,以便至少有一行,则计算列公式是可读的。

有没有一种方法可以确定计算的列公式是什么,而无需向列表对象添加任何数据?

最佳答案

这里有一个解决方法,无论表是否有行,都可以使用。

getListColumnFormulae - 向表中添加一行 - 使用所有 ListColumns 的公式填充一维基数 1 数组 - 删除行 - 返回数组

enter image description here

<小时/>

enter image description here

<小时/>
Function getListColumnFormulae(tbl As ListObject)
    Dim Formulae
    On Error Resume Next
    With tbl.ListRows.Add
        Formulae = Application.Transpose(.Range.Formula)
        Formulae = Application.Transpose(Formulae)
        getListColumnFormulae = Formulae
        .Delete
    End With
    On Error GoTo 0
End Function

Sub FormulaeMessage()
    Dim Data
    Dim tbl As ListObject
    Set tbl = Worksheets("Sheet2").ListObjects(1)
    Data = getListColumnFormulae(tbl)

End Sub

关于vba - 如何在没有任何数据行的情况下读取 Excel 表/ListObject 中的计算列的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40734024/

相关文章:

vba - 在 Excel 中合并列

excel - 从 Word 中提取作者和评论到 Excel

vba - Excel vba 对象变量或未设置 block 变量错误

excel - 如何使用Excel数据查找经期

c# - 在 C# 中计算值的数组(从 Excel 转换公式)

excel - VB/VBA StrComp 或 =

vba - 特定单元格值决定列颜色 Excel

excel - 在不使用 VBA 或宏的情况下在 excel 中循环

html - CSS - calc 不工作 Firefox

python - 如何计算 python pandas 中的特定单元格值?