对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
基本上是这样工作的:复制选择(列)的在粘贴到目标表>清除初始选择
编辑:你需要选择整个列