启用数据从用户定义的列移动到 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 该列的单个单元格)
这是我第一次 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 该列的单个单元格)