gpt4 book ai didi

mysql - VBA删除表后的行

转载 作者:行者123 更新时间:2023-11-29 20:51:38 24 4
gpt4 key购买 nike

我有一个 Excel 2010 电子表格,其中包含一个宏,该宏根据另一个表(表 2)的大小调整表(表 1)的大小,因为它们应该始终具有相同的行数。表 2 中的行数每月都会发生变化。只要表 2 正在添加行,该宏就可以正常工作。如果表 2 正在减去行,那么我最终会得到表 1 下不需要的公式/数据。我正在使用的宏:

Sub Table 1()
Sheet3.Unprotect Password:="password"
ThisWorkbook.Sheets("Sheet3").ListObjects("Table 1").Resize [range]
Sheet3.Protect Password:="password"
End Sub

有没有办法编写一个宏来删除这些无关的数据(当前表之后的所有数据/公式)?我知道手动删除它们是一件简单的事情,但我希望保护包含表一的选项卡,并且只允许宏(也将受到保护)运行,以避免随机的人弄乱此工作表。如有任何建议,我们将不胜感激。

谢谢!格雷厄姆

最佳答案

计算调整大小之前和调整大小之后的行数。然后,如果您的表变小,请删除差异行。在我的示例中,我的表名为 Table1,因此您需要进行一些编辑。尝试以下操作。

CRUTER example of short resizing table issue

Sub test()

Dim rowsBefore As Integer
Dim rowsAfter As Integer
Dim rowsExtra As Integer

'get num of rows before resize
rowsBefore = Range("Table1").Rows.Count

'resize table
ThisWorkbook.Sheets("Sheet3").ListObjects("Table 1").Resize [range]

'get num of rows after resize
rowsAfter = Range("Table1").Rows.Count

'get num of rows removed / added
rowsExtra = rowsBefore - rowsAfter

'remove data if positive / removed rows
If rowsExtra > 0 Then
Range("Table1[testColumn]")(rowsAfter + 1).Select
Range(ActiveCell.Address, ActiveCell.Offset(1 + rowsExtra).Address).EntireRow.Delete
End If

End Sub

关于mysql - VBA删除表后的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37996652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com