这是我在这个出色网站上的第一条帖子。 希望您能帮我解决我要设置的代码。如果这是重复的话,请提前道歉,但是我认为搜索该网站没有类似的情况。
在子例程中,我确定用户可以选择一列。我希望它采用F:F列格式(但是实际列将由用户指定,因此F列是一个示例)。我提出了以下建议:
Dim rng As Range
On Error Resume Next
Set rng = Application.InputBox(Prompt:="Select the column", Title:="Selecting the column", Type:=8)
On Error GoTo 0
接下来,我希望选定的列移至Z列。对于本练习,我们编写了以下内容:
Range("F2:F" & Cells(Rows.Count, "F").End(xlUp).Row).Copy Destination:=Range("Z2")
因此,我希望从用户选择的列开始的数据移动到我们指定的列(当前为Z列)。数据从第2行开始,第1行为标题。
我试图链接上面的2,但是不确定如何继续。
感谢您的投入。
答案 0 :(得分:0)
您在这里:
Sub test()
Dim rng As Range
On Error Resume Next
Set rng = Application.InputBox(Prompt:="Select the column", Title:="Selecting the column", Type:=8)
If rng Is Nothing Then Exit Sub
On Error GoTo 0
rng.Copy Destination:=Range("Z:Z")
End Sub
所以基本上您在正确的轨道上。
答案 1 :(得分:0)
以下代码从所选列获取列号,创建从第2行到使用该列的最后一行的范围,并将内容复制到Col“ Z”。
Sub copyCol()
Dim rng As Range, col As Long
Set rng = Application.InputBox(Prompt:="Select the column", _
Title:="Selecting the column", Type:=8)
If rng Is Nothing Then Exit Sub ' User pressed Cancel.
col = rng.Column
With ActiveSheet
' Get number of rows in selected column
Dim lastRow As Long
lastRow = .Cells(.Rows.Count, rng.Column).End(xlUp).row
' Copy the selected column, starting at row 2, to Col Z
If lastRow > 1 then
.Range(.Cells(2, col), .Cells(lastRow, col)).Copy Destination:=.Range("Z2")
End If
End With
End Sub
(请注意,在此版本中,用户只需选择该列的单个单元格即可)