【问题标题】:How to get the range of selected cells using VBA?如何使用 VBA 获取选定单元格的范围?
【发布时间】:2015-02-27 21:44:29
【问题描述】:

我正在尝试使用 VBA 编写 Excel 宏。问题是,这个宏中处理的单元格是由用户选择的,所以我不能预定义范围。

这是我的代码:

Range(???).Select
Selection.FormulaR1C1 = StrConv(Selection.Text, 3)

如何取选定单元格的范围填入“???”在上面的代码中?

n.b.:用户可以选择他们想要的任何范围,并且可以多次使用此宏。

提前致谢!

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    如果用户已经选择,那么您只需要:

    Selection.FormulaR1C1 = StrConv(Selection.Text, 3)
    

    编辑#1

    假设用户有选择单元格A1A10,我们想在单元格中放置一个简单的公式:

    Sub SomethingSimple()
        Selection.Formula = "=1+2"
    End Sub
    

    这将完全在每个单元格中放置相同的公式。

    但是,如果我们想在单元格中放置一个“可调整”的公式:

    Sub SomethingMoreComplex()
        Selection.Formula = "=B1"
    End Sub
    

    运行 SomethingMoreComplex 后,单元格 A1 将包含:

    =B1
    

    并且单元格 A2 将包含:

    =B2
    

    等等。所以“调整”已经应用了!

    【讨论】:

    • 谢谢,我之前尝试过,只有在我只选择一个单元格时才有效。如果我选择多个单元格,Excel 将删除单元格中的所有数据。你知道为什么会这样吗?
    • @Luke 查看我的 EDIT#1
    • 我试过了。它不适用于 StrConv()。但我找到了解决方案:使用For Each x In Selection 将其应用于每个选定的单元格。无论如何,感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 2018-10-02
    相关资源
    最近更新 更多