【问题标题】:How to run code on currently selected range of cells?如何在当前选定的单元格范围内运行代码?
【发布时间】:2023-02-16 10:21:38
【问题描述】:

我有 12 列数据。我试图将其转置为 12 列数据,同时在公式中保留绝对单元格引用。

我正在尝试制作一个宏,允许我选择执行此操作所需的范围,然后复制每个绝对公式并将它们按原样粘贴到第一列中。如何使代码以我的选择而不是绝对单元格开头。

我需要为我的所有工作表执行此操作,这需要运行此操作大约 100 次。

【问题讨论】:

  • 请不要发布代码图片。相反,发布代码本身(编辑您的问题),以便人们可以根据需要复制/粘贴它。
  • 0) 发布实际代码,而不是前面提到的图像。 1)像这样摆脱 .select:Range("E4").FormulaR1C1 = "yourformula"。这将加快您的代码。 2) 您可以研究宏的一些选项:Range("A1").Offset(#,#)Selection.formula = ...Dim RG as range, Set RG = Selection... 如果您想在多张纸上运行相同的东西,您可以使用Dim SH as worksheets, for each SH in thisworkbook.worksheets...

标签: excel vba


【解决方案1】:

这可以作为一个示例,应该可以帮助您到达需要的位置。


首先,您首先要avoid Select

其次,您需要一些尺寸范围,您可以使用 application.transpose() 移动项目:

Option Explicit

Sub test()
    With Sheets(1)
        Dim sourceRange As Range
        Set sourceRange = .Range(.Cells(1, 1), .Cells(2, 2))
        Dim destinationRange As Range
        Set destinationRange = .Cells(5, 1)
        destinationRange.Resize(sourceRange.Rows.Count, sourceRange.Columns.Count).Value = Application.Transpose(sourceRange)
    End With
End Sub

请注意,整个range() 都使用点符号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-08
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    相关资源
    最近更新 更多