首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于单元格中的文本动态调整表格大小

基于单元格中的文本动态调整表格大小
EN

Stack Overflow用户
提问于 2018-01-18 01:58:40
回答 1查看 1.7K关注 0票数 1

我有一个根据切片器选择改变大小的动态表,所以有时表可能由4行组成,有时是7行,有时是15行,等等。

不管表的大小如何,列A中的最后一行将始终等于"Retail Total“。

我的表基本上看起来像这样:

代码语言:javascript
复制
+--------------+------+------+------+------+------+------+
|     ColA     | ColB | ColC | ColD | ColE | ColF | ColG |
+--------------+------+------+------+------+------+------+
| Row1         | B2   | C2   | D2   | E2   | F2   | G2   |
| Row2         | B3   | C3   | D3   | E3   | F3   | G3   |
| Row3         | B4   | C4   | D4   | E4   | F4   | G4   |
| Retail Total | B5   | C5   | D5   | E5   | F5   | G5   |
+--------------+------+------+------+------+------+------+

我想做的是有一些VBA代码,将调整表的大小取决于“零售总额”发生的地方。

到目前为止,我的代码如下:

代码语言:javascript
复制
Private Sub Worksheet_Calculate()
Dim ws As Worksheet
Dim ob As ListObject
Dim Lrow1 As Long

Set ws = ActiveWorkbook.Worksheets("Sheet1")
Set ob = ws.ListObjects("Table6")

With Sheets("Sheet1")

    Lrow1 = .Cells(.Rows.Count, "G").End(xlUp).Row
    Do While .Cells(Lrow1, "A").Value = "Retail Total"
        Lrow1 = Lrow1 - 1
    Loop

End With

ob.Resize ob.Range.Resize(Lrow1)

End Sub

这段代码似乎不起作用。这个表一直在增长,不会止步于"Retail Total",所以我希望能得到一些帮助。

EN

回答 1

Stack Overflow用户

发布于 2018-01-18 03:41:52

我运行了这段代码,它正常工作,除了一个off-by-one错误。我用以下命令修复了它:

代码语言:javascript
复制
ob.Resize ob.Range.Resize(Lrow1 + 1)

您应该验证包含"Retail Total“的单元格是否确实包含该逐字短语,而不是任何前导或尾随空格。您可以通过将此代码放入您的即时窗口进行测试,并查看它是否为真:

代码语言:javascript
复制
? range("A5").Value = "Retail Total"

用当前恰好包含"Retail Total“的单元格替换A5。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48307256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档