【问题标题】:Removing column(s) from selected range从选定范围中删除列
【发布时间】:2014-05-09 04:32:50
【问题描述】:

我有以下代码,它根据工作表中具有数据的行选择一个范围,从第 10 行开始:

Range("B10").Select
Range(Selection, Selection.SpecialCells(xlLastCell)).Select

这很好用,但默认情况下它会捕获所有包含数据的列。我不确定如何将其更改为仅捕获特定列。

例如,如果我只想要选择数据的行的 B:D 列,则将其更改为

Range("B10:D10").Select
Range(Selection, Selection.SpecialCells(xlLastCell)).Select

不起作用,因为 *SpecialCell*s 选择会覆盖它并仍然返回所有包含数据的列。

SpecialCells 捕获范围后,是否有一种简单的方法可以将列从当前选定范围中删除?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    我会使用xlup 来填充最后一行,如

    debug.print range("B10:D" & cells(rows.count,"D").end(xlup).row).address
    

    除非我想将选择返回给最终用户,否则我也会避免使用 select

    【讨论】:

    • 谢谢。我正在使用选择复制+粘贴到不同的工作簿中。您的解决方案仍然适用吗?
    • 是的,它会的。我会用它作为range("B10:D" & cells(rows.count,"D").end(xlup).row).copy workbooks("My Workbook.xlsx").sheets(1).cells(1,1)
    猜你喜欢
    • 2022-01-08
    • 2012-06-03
    • 2017-08-22
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多