【问题标题】:How to calculate off a filtered table in Excel, possibly use VBA如何在 Excel 中计算过滤表,可能使用 VBA
【发布时间】:2020-01-17 00:04:18
【问题描述】:

这里是全新的 VBA 用户:

我正在尝试从 excel 中的过滤表中获取计算表形式。我知道过滤后的表只隐藏值,所以任何偏移量或索引仍然返回隐藏的过滤值,所以互联网促使我使用 VBA。

在使用 VBA 时,我似乎无法将变量插入到 range.value 中,该变量在每个循环中都会增长,因此单元格会增长,直到可见的过滤表完成。我相信 Do Until 函数是我应该用来实现这一目标的,但我需要一些关于我的代码的主要帮助,或者我不知道更简单的过程:

当前破解密码:

Sub TableCreate()

iRow = 1

iPlug = 1

Do Until IsEmpty(Cells(iRow, 1))

Set Rng = Range("A"iPlug)

' Store the current cell value in the dCellValues array

Range(Rng).Value = Cells(iRow, 1).Value

iRow = iRow + 1

iPlug = iPlug + 1

Loop


End Sub

谢谢,

EEE

【问题讨论】:

    标签: excel vba filter datatable calculated-columns


    【解决方案1】:

    如果您想在单元格地址中使用数字变量,则必须将数字与与符号& 符号连接。

    Set Rng = Range("A" & iPlug)
    

    看起来您只需要一个变量,因为 iPlug 和 iRow 将始终是相同的值。

    如果将Rng 变量声明为范围,则可以直接使用该变量。

        Dim Rng as Range
    '... code leading up to this ...
        Set Rng = Range("A"&iPlug)
    
        ' Store the current cell value in the dCellValues array
    
        Rng = Cells(iRow, 1).Value
    

    您也可以直接使用 Range 方法,而不使用变量。

    Range("A"&iPlug) = Cells(iRow, 1).Value
    

    【讨论】:

    • 优秀的答案!谢谢...想知道是否有一种方法可以在不使用 Excel 中的 VBA 的情况下计算过滤表。我希望数据在一张表上更改,因为我在另一张表上手动过滤表,但简单地过滤(隐藏)行不允许另一个表以不同的方式计算。我问的原因是,一旦我完成了这个,我必须向一个根本不了解 VBA 的同事介绍我的方法,所以不使用 VBA 的解决方案将是理想的:),但如果不可能,那么我将不得不做.
    • 这取决于您要计算的内容。 Subtotal() 具有仅对可见数据求和的参数。另外,可以考虑使用数据透视表,或者使用 Sumifs()、Countifs() 等函数来定义计算条件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2017-07-17
    • 2018-10-14
    • 1970-01-01
    相关资源
    最近更新 更多