【问题标题】:Copy Range to Another Worksheet Using Input Box to Choose Range使用输入框选择范围将范围复制到另一个工作表
【发布时间】:2017-02-19 19:08:05
【问题描述】:

我正在编写一个 VBA 宏,其中出现了一个 InputBox,用户将选择一个完整列的范围,然后宏将该范围粘贴到另一个工作表上的特定位置。我一直在尝试使此代码正常工作,但根据我尝试修复的内容,我不断收到不同的错误,所以我想知道是否有人可以帮助我。我已经粘贴了代码的相关部分:

Sub Create_CONV_Files()

Dim NewCode As Range
Set NewCode = Application.InputBox(Prompt:="Select the column with the code numbers", Title:="New Event Selector", Type:=8)

Dim RawData As Worksheet
Set RawData = ActiveSheet

Dim OffSht As Worksheet
Set OffSht = Sheets.Add(After:=Sheets(Sheets.Count))
OffSht.Name = "offset.sac"

Worksheets(RawData).Range(NewCode).Copy _
  Destination:=OffSht.Range("A:A")

End Sub

我尝试将输入改为字符串,但我也收到错误,不知道如何解决。我希望大致使用我概述的方法,因为我的完整代码有多个目标表和范围。

非常感谢您提供的任何帮助!

【问题讨论】:

    标签: vba variables range copy-paste inputbox


    【解决方案1】:

    一旦您设置了 Range 对象,它就会带来其工作表属性,因此无需限定其工作表

    Sub Create_CONV_Files()
    
        Dim NewCode As Range
        Set NewCode = Application.InputBox(prompt:="Select the column with the code numbers", title:="New Event Selector", Type:=8)
    
        Dim OffSht As Worksheet
        Set OffSht = Sheets.Add(After:=Sheets(Sheets.count))
        OffSht.Name = "offset.sac"
    
        NewCode.Copy _
        Destination:=OffSht.Range("A1")
    
    End Sub
    

    【讨论】:

    • 你是个天才!效果很好!太感谢了!!我能问一下您是如何将我的 Range A:A 更改为 A1 的吗?我更改了范围以匹配您的范围,但我想知道这是否是最佳实践类型更改,或者目标范围是否仅采用范围的第一个单元格。
    猜你喜欢
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    相关资源
    最近更新 更多