繁体   English   中英

使用 excel VBA 交换任意两个单元格 - 包括不相邻的单元格

[英]Swap any two cells using excel VBA - including non-adjacent cells

我需要交换两个单元格值。 按住Shift Key然后选择 & 放置方法在这里不起作用。 所以我决定创建一个宏,我可以在其中获取活动单元格地址

ActiveCell.Address

但是在运行这个宏之前我怎样才能得到我复制的单元格的地址呢? 详细说明这些是交换值的步骤。

复制一个单元格

Select 同一张表中的另一个单元格

运行宏以交换值(这会将活动单元格值保存为字符串并粘贴复制的单元格值)

更新:对于使用 VBA 在不到三个步骤中切换列、单元格或行,请按照此https://youtu.be/MaiSBVguh28

这个子会做的伎俩:

Sub swapper()
Dim cellfirst As String, cellsecond As String
If Not Selection.Cells.Count = 2 Then
    MsgBox ("Please only select two cells")
        Else
        If Selection.Areas.Count > 1 Then
            cellfirst = Selection(1).Value
            cellsecond = Selection.Areas(2).Value
            Selection(1).Value = cellsecond
            Selection.Areas(2).Value = cellfirst
                Else
                cellfirst = Selection(1).Value
                cellsecond = Selection(2).Value
                Selection(1).Value = cellsecond
                Selection(2).Value = cellfirst
        End If
End If
End Sub

它将测试是否选择了两个单元格,如果没有给出错误消息。 然后它将测试细胞是分开还是靠近。 然后基于此将两个单元格的值存储在字符串中,交换字符串,然后打印回单元格。

注意: Select 按住ctrl并单击两个不同的单元格。

我意识到这不是您所要求的 1 对 1,但是为什么 go 通过自己复制某些东西的努力,当您可以让宏为您完成所有事情时?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM