首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >像剪切一样复制选定内容的VBA代码,这样粘贴就不会修改引用?

像剪切一样复制选定内容的VBA代码,这样粘贴就不会修改引用?
EN

Stack Overflow用户
提问于 2014-06-11 20:38:10
回答 1查看 206关注 0票数 0

当我复制并粘贴时,excel会将单元格引用下移。例如,对行3上的单元格B2的引用变成了对行4上的行B3的引用。

通过剪切和粘贴,这种情况不会发生,对单元格B2的引用仍然是对B2的引用。

我想要剪切和粘贴的行为,但不会丢失原始内容。

我试着录制一个宏,然后按F2、SHIFT-HOME、复制和转义,而excel什么也不记录。但这就是我希望宏做的事情,这样当我复制它时,它就会完美地复制它。

EN

回答 1

Stack Overflow用户

发布于 2014-06-12 03:14:28

经过大量的工作,我得出了以下结论:

代码语言:javascript
运行
复制
Dim formulas() As String
Dim initCopyCol As Integer
Dim initCopyRow As Integer
Dim columns As Integer
Dim rows As Integer

Sub copyFormulaRange()

    initCopyCol = Selection.Column
    initCopyRow = Selection.row

    columns = Selection.columns.Count
    rows = Selection.rows.Count

    ReDim formulas(1 To columns, 1 To rows)

    For i = 1 To columns
        For j = 1 To rows
            formulas(i, j) = Cells(initCopyRow + j - 1, initCopyCol + i - 1).Formula
        Next j
    Next i

End Sub

Sub pasteFormulaRange()

    Dim initPasteCol As Integer
    Dim initPasteRow As Integer

    initPasteCol = Selection.Column
    initPasteRow = Selection.row

    For i = 1 To columns
        For j = 1 To rows
            Cells(initPasteRow + j - 1, initPasteCol + i - 1).Formula = formulas(i, j)
        Next j
    Next i

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24163157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档