将输入框选择的列复制到现有工作表上的下一个可用列



对VBA非常新,我有一个具有值和自由文本调查响应的工作簿。我正试图将"自由回复文本"列剪切到我的工作簿中的自己的工作表中。这个自由文本所在的列可能会根据输入的调查数据而有所不同,因此我使用输入框允许用户选择要复制的正确列。

我知道如何将该数据粘贴到新工作表中的特定列中,但是如果有多个自由文本列,则此代码可能会运行多次。

如何调整代码以粘贴到指定工作表的下一个可用列?提供一次选择多个非连续列的选项也可以。

Sub CopyFreeText()

Dim MySelection As Range

On Error Resume Next
Set MySelection = Application.InputBox("Select the column to move.", "Move Column", Type:=8)
If MySelection Is Nothing Then Exit Sub 'user canceled
On Error GoTo 0

MySelection.EntireColumn.Cut (Sheets("Free Text Response").Range("A:A"))
Application.CutCopyMode = False

End Sub

已收到并在别处回复。

Dim rngA As Range
Dim rngB As Range
On Error Resume Next
Set rngA = Application.InputBox("Select the column to move.", "Move Column", Type:=8)
If rngA Is Nothing Then Exit Sub 'user canceled
On Error GoTo 0
rngA.Copy
With Sheets("Free Text Response")

Set rngB = .Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)
If Not rngB Is Nothing Then
.Cells(1, rngB.Column + 1).PasteSpecial xlPasteAll
Else
.Range("A1").PasteSpecial xlPasteAll
End If
End With
rngA.Clear

基本上是这样工作的:复制选择(列)的在粘贴到目标表>清除初始选择

编辑:你需要选择整个列

相关内容

  • 没有找到相关文章

最新更新