【问题标题】:Excel Macro selects entire table rows, cuts and pastes to another table, then deletes original rowsExcel 宏选择整个表格行,剪切并粘贴到另一个表格,然后删除原始行
【发布时间】:2012-08-11 05:56:35
【问题描述】:

我正在尝试创建一个可以执行以下操作的宏:

  1. 识别我的活动单元格并选择整个表格行 那些细胞。剪掉所有这些行。
  2. 将它们粘贴到不同工作表上的另一个表中(最后 表添加到已经存在的任何内容中)。
  3. 返回原始工作表并删除现在为空的行。

我对 VBA 有很好的了解。我能够根据我的活动单元格选择整行。但如果我选择多个单元格(例如,B4、B5 和 B6),它只会选择一行而不是全部三行。此外,我一直无法让它只选择表格行,而不是整个行。

这是我开始使用的第一行代码。但它没有 A:选择多行或 B:仅选择表格的行单元格。

ActiveCell.EntireRow.Select

我们将不胜感激任何和所有的帮助。即使只是对上述部分步骤的帮助也可以帮助我。

谢谢!

【问题讨论】:

  • 如果你有代码,你应该包含它。不要让我们猜测问题是什么......
  • Selection.EntireRow.Select 当前选择中只有一个 ActiveCell。当您说“表格”时,您是指实际 Excel 表格对象 (office.microsoft.com/en-us/excel-help/…) 中的表格,还是只是一组数据?
  • 是的,一个真正的 Excel 表。从功能区中的“格式为表格”菜单创建的内容。我宁愿只选择表格中的行中的单元格,而不选择该行的其他单元格。
  • jkp-ads.com/articles/Excel2007TablesVBA.asp 可能很有用——具体如何处理它取决于这是否是工作表上唯一的表格。如果还有其他表,您需要遍历它们并查看选择的交集和每个表范围以找到“父”表。
  • 感谢您的链接。这里有很多很好的信息。幸运的是,我的每张工作表只有一张桌子。 “.ListRows(4).Range.Select” 看起来像我需要的,但我需要弄清楚如何使用它来使用我的活动选择而不是预定的行。

标签: excel vba


【解决方案1】:
Sub Tester()

Dim rng As Range

    Set rng = Application.Intersect(Selection.EntireRow, _
                    Selection.Parent.ListObjects(1).Range)

    If Not rng Is Nothing Then
        'rng.Font.Color = RGB(255, 0, 0) 'do something with rng
    End If

End Sub

【讨论】:

  • 通过 Excel 运行它,它似乎对我的选择没有任何作用。
  • 按原样,它没有做任何事情 - 它旨在帮助您弄清楚如何从表中选择整行...
猜你喜欢
  • 2019-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-08
  • 1970-01-01
  • 1970-01-01
  • 2018-12-02
相关资源
最近更新 更多