启用数据从用户定义的列移动到 pre-defined 列

Enabling a data move from a user defined column to a pre-defined column

这是我第一次 post 访问这个出色的网站。 我希望你能帮我解决我正在尝试设置的代码。如果这是重复的,请提前道歉,但搜索网站我认为没有类似的情况。

在子例程中,我确定用户可以 select 列。我希望它是列格式 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

接下来,我希望 selected 列移动到 Z 列。对于本练习,我们编写了以下内容:

Range("F2:F" & Cells(Rows.Count, "F").End(xlUp).Row).Copy Destination:=Range("Z2")

所以我希望从用户 select 编辑的列开始的数据移动到我们指定的列(当前是 Z 列)。数据从第 2 行开始,第 1 行是 header.

我尝试 link 上面的 2 个,但不确定如何进行。

感谢您的意见。

给你:

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

所以基本上你是在正确的轨道上。

以下代码从 selected 列获取列号,创建从第 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

(请注意,使用此版本,用户只需 select 该列的单个单元格)