Excel 使用活动列的VBA范围语句

Excel 使用活动列的VBA范围语句,excel,vba,range,Excel,Vba,Range,我需要在range语句中使用活动列。如何写下: Range((Activecolumn)2) 所以我需要一个列值是动态的,因为我通过按userform按钮左右移动,但行号始终保持不变。首先,我使用列“C”,并用 Columns("C").Select 然后我使用 Private Sub Next_Format_Button_Click() ActiveCell.Offset(, 1).EntireColumn.Select End Sub 因此,当我导航到下一列时,

我需要在range语句中使用活动列。如何写下:

Range((Activecolumn)2)
所以我需要一个列值是动态的,因为我通过按userform按钮左右移动,但行号始终保持不变。首先,我使用列“C”,并用

Columns("C").Select
然后我使用

Private Sub Next_Format_Button_Click()

ActiveCell.Offset(, 1).EntireColumn.Select

End Sub
因此,当我导航到下一列时,我需要所有其他的range语句来配合它。所以基本上,我的range语句中的列字母应该类似于“current”或“active”列

谁能帮帮我吗

Range(ActiveCell.address).entireColumn.copy
我想这就是你要找的

我还建议避免使用“.Select”,除非绝对必要。它会在代码中添加不必要的行,并在复制(或任何)操作完成之前通过鼠标选择另一个范围,从而使程序面临更大的用户意外损坏风险。最好直接执行您想要执行的任何操作,或者将范围指定给变量


编辑:啊,对不起,我现在看到的是您唯一的第2行,然后是上面指出的单元格(2,ActiveCell.Column)。

如果您想获取所选内容所在的列的编号:

ActiveCell.Column
如果您需要列中的字母,请选择:

Split(ActiveCell.Address, "$")(1)

您是否只需要一个变量来获取您所在列的编号?只需使用
Cells(2,activecell.column)
这就是我要查找的,但在本例中,我要查找的是“C1”而不是“C2”,因此代码中的“2”应该是“1”。但除此之外,这也是我所需要的,如果我的行范围是“C4:C6”,因为“Cells(4:6,ActiveCell.Column)”会是什么样子似乎不正确,因为它在VBA编辑器中高亮显示红色,或者不可能在工作表中意外选择错误的位置,因为所有操作都发生在用户表单中,并且更改会立即传播到工作表中。工作表已经禁用了编辑和所有这些功能,但是从用户的角度查看活动列是很方便的