2017-02-19 33 views
0

Я пишу макрос 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 

Я пытался сделать ввод строки вместо, но я также получаю ошибки там, и я не знаю, как исправить это. Я надеялся использовать примерно тот метод, который я изложил, так как мой полный код имеет несколько целевых листов и диапазонов.

Большое спасибо за любую помощь, которую вы можете предложить!

ответ

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 
+0

Ты гений! Это сработало отлично! Огромное спасибо!! Могу ли я спросить о том, как вы изменили мой диапазон A: A на A1? Я изменил свои диапазоны в соответствии с вашими потребностями, но мне интересно, изменилось ли это изменение типа наилучшей практики или если в поле назначения используется только первая ячейка диапазона. – user32509