这似乎是一件简单的事情,但我无法弄清楚,或者在网上找到它。
如果我在一列中选择 5 个单元格(比如 A1:A5),并且我想将此选择形状(列 1:5)移动到(到 B1:B5);有捷径可以做到这一点吗?目前我点击了左箭头,选择框的大小变成了 B1,我必须点击 shift 并选择 B2:B5。理想情况下,我想找到一个“锁定”选择框形状的热键。
有同事建议写一个宏,但是很多情况下是无效的。例如,如果我想用一行或不同大小的形状做同样的事情,而不是一列,该怎么办。excel似乎内置了这个功能。
这似乎是一件简单的事情,但我无法弄清楚,或者在网上找到它。
如果我在一列中选择 5 个单元格(比如 A1:A5),并且我想将此选择形状(列 1:5)移动到(到 B1:B5);有捷径可以做到这一点吗?目前我点击了左箭头,选择框的大小变成了 B1,我必须点击 shift 并选择 B2:B5。理想情况下,我想找到一个“锁定”选择框形状的热键。
有同事建议写一个宏,但是很多情况下是无效的。例如,如果我想用一行或不同大小的形状做同样的事情,而不是一列,该怎么办。excel似乎内置了这个功能。
我不确定宏如何无效。我会编写类似于下面的程序,然后将它们分配给热键。请让我知道这对你有没有用。
Option Explicit
Public rowDim As Long
Public colDim As Long
Public putSel as Boolean
Sub togglePutSel()
putSel = Not putSel
End Sub
Sub GetSelShape()
rowDim = Selection.Rows.Count
colDim = Selection.Columns.Count
putSel = True
End Sub
Sub PutSelShape()
Selection.Resize(rowDim, colDim).Select
End Sub
如果您想让它在您按下箭头键时工作,那么在您的工作表代码中,您可以使用它。您可能想快速检查一下,rowDim
并且colDim
不是 0。唯一的问题是,除非您创建触发器来停止调用,否则您将被这种行为所困扰PutSelShape
。因此,我建议使用一个宏(热键为GetSelShape
)来切换它,另一个热键为togglePutSel
.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If putSel Then
Call PutSelShape
End If
End Sub