2015-08-17 2 views
0

Я пытаюсь создать функцию, которая копирует значения из одной электронной таблицы и вставляет их в другую для целей анализа. Все работает до «US_CAD_EquipCharges1», но затем я получаю ошибку времени выполнения 1004 «Эта команда не может использоваться для нескольких выборов».Application.Goto Looping

Ниже приведен код, и я не могу понять, что это значит.

Sub CrewRates() 

    Application.Goto reference:="CAD_NU_CrewRates" 
    Selection.Copy 
    Sheets("Summary").Select 
    Range("B4").Select 
    ActiveSheet.Paste 

    Application.Goto reference:="US_NU_CrewRates" 
    Selection.Copy 
    Sheets("Summary").Select 
    Range("E4").Select 
    ActiveSheet.Paste 

    Sheets("_6a_US_CAD_Conventional").Select 
    Application.Goto reference:="NDE_Regions" 
    Selection.Copy 
    Sheets("Summary").Select 
    Range("B2").Select 
    ActiveSheet.Paste 

    Application.Goto reference:="US_CAD_EquipCharges1" 
    Selection.Copy 
    Sheets("Summary").Select 
    Range("I4").Select 
    ActiveSheet.Paste 

    Application.Goto reference:="US_CAD_EquipCharges2" 
    Selection.Copy 
    Sheets("Summary").Select 
    Range("I4").Select 
    ActiveSheet.Paste 

    Application.Goto reference:="US_CAD_EquipCharges3" 
    Selection.Copy 
    Sheets("Summary").Select 
    Range("I4").Select 
    ActiveSheet.Paste 

    Sheets("_6a_US_CAD_Conventional").Select 
    Application.Goto reference:="NDE_Regions" 
    Selection.Copy 
    Sheets("Summary").Select 
    Range("I2").Select 
    ActiveSheet.Paste 


    Call VendorNames 
     Columns("A:H").Select 
     Columns("A:H").EntireColumn.AutoFit 


End Sub 
+0

Почему вы выбираете один и тот же диапазон в одном листе 3 раза подряд? –

+0

Вы пытаетесь изменить вкладки, выполнив Application.Goto reference: = «US_CAD_EquipCharges1» – MatthewD

+0

@davidg У меня есть три отдельных диапазона имен, потому что набор данных имеет более 1000 строк, и я только пытаюсь оценить 6 из них среди 12 разных поставщиков , –

ответ

0

Я бы предположить, что "US_CAD_EquipCharges1" именованный диапазон из отчаянных диапазонов на листе.

Невозможно скопировать диапазон, который состоит из меньших отчаянных диапазонов, которые имеют разные размеры, например. один блок - 3 строки, а другой - 5 строк. Чтобы избежать ошибки, вам необходимо настроить именованный диапазон, чтобы он был единственным блоком ячеек.

У меня есть именованный диапазон называется ourRangeX, который определяется как это = Sheet3 $ F $ 8: $ G $ 11, Sheet3 $ J $ 6: $ K $ 8

Это работает ок

Sub foo2() 
Range("ourRangeX").Select 
End Sub 

Это не удается

Sub bar2() 
Range("ourRangeX").Select 
Range("ourRangeX").Copy 
End Sub 

вы можете редактировать именованный диапазон US_CAD_EquipCharges2 так, что оно соответствует приведенному выше правилу?

+0

Можете ли вы сделать союз? – MatthewD

+0

@MatthewD - да, это очень интересно: я только что протестировал и диапазон объединения будет копировать, но именованный диапазон, состоящий из двух разрозненных черных, не будет копировать ... странное поведение – whytheq

+0

Спасибо за ответ. US_CAD_EquipCharges2 - это подмножество над общим набором данных, которое составляет более 1000 строк. Я думаю, что диапазоны имен ограничены определенным количеством строк, и я достиг этого предела. Я пытаюсь избежать ошибок вручную, копируя и вставляя эти строки в отдельный набор данных. Надеюсь, это имеет смысл. –