2013-06-21 3 views
1

У меня в тупике с моим кодом здесь, я получаю эту общую ошибку в строке, где ее предполагается скопировать и вставить выбранный диапазон после создания рабочего листа, но это дает мне это расстраивает ошибка - я не знаю, что я делаю неправильно здесь, пожалуйста, помогите ребята, все оцененная помощь :)Определенная заявленная или объектная ошибка (с поименованными диапазонами)

Private Sub ExpBttn() 

Dim WrkShtExists As Boolean 
Dim Sht As Worksheet 
Dim x As Integer 
Dim TgtRngR As Range 
Dim TgtRngB As Range 
Dim TgtNme As String 

Select Case Multi 
Case MultiPage1.Value = 0 
    Set TgtRngR = Sheets("Tracker").Range("U2:Z19") 
    Set TgtRngB = Sheets("Tracker").Range("U21:Z26") 
    TgtNme = "P4PSoft" 
Case MultiPage1.Value = 1 
    Set TgtRngR = Sheets("Tracker").Range("AB2:AG19") 
    Set TgtRngB = Sheets("Tracker").Range("AB21:AG26") 
    TgtNme = "P4PHard" 
Case MultiPage1.Value = 2 
    Set TgtRngR = Sheets("Tracker").Range("AP2:AU19") 
    Set TgtRngB = Sheets("Tracker").Range("AP21:AU26") 
    TgtNme = "RCI" 
Case MultiPage1.Value = 3 
    Set TgtRngR = Sheets("Tracker").Range("AI2:AN19") 
    Set TgtRngB = Sheets("Tracker").Range("AI21:AN26") 
    TgtNme = "RCDI" 

End Select 

Sheets.Add.Name = "Exported_" & TgtNme 

Sheets("Tracker").Range("TgtRngR").Copy Destination:=Sheets("Exported_" & TgtNme).Range("A1:F18") 
Sheets("Tracker").Range("TgtRngB").Copy Destination:=Sheets("Exported_" & TgtNme).Range("A20:F25") 
Sheets("Exported_" & TgtNme).Range("A1:F18") = Sheets("Tracker").Range("TgtRngR").Value 
Sheets("Exported_" & TgtNme).Range("A20:F25") = Sheets("Tracker").Range("TgtRngB").Value 
Sheets("Exported_" & TgtNme).Select 
ActiveSheet.Columns("A:F").AutoFit 

ответ

0

Вы установите переменную диапазона в операторе Case, поэтому использовать его в копии/вставить

TgtRngR.Copy Destination:=Sheets("Exported_" & TgtNme).Range("A1:F18") 

и

Sheets("Exported_" & TgtNme).Range("A1:F18") = TgtRngR 

Кроме того, ваш случай Постулаты логика неверна. Это должно быть что-то вроде

TgtNme = "" 
Select Case MultiPage1.Value 
Case 0 
    ... 
Case 1 
    ... 
'etc 
End Select 

If TgtNme <>"" then 
    ' do the cop pastes 
End If 
+0

Wow! Спасибо, что это сработало как шарм. Да, я noob, как вы можете ясно видеть: D Большое спасибо, я действительно не знал, куда идти с этим, но время отклика и знающие люди здесь заставляют меня чувствовать себя прекрасно! Вы, сэр, мой герой. Еще раз спасибо. –

0

Проверьте Case заявление:

  • в Case нож вы используете (местное) переменная Multi
  • в заявлениях contition вы используете другой объект MultiPage1.Value
  • оба не объявлены

Для меня это выглядит так, как ни один из Case ветвей выполнены и, следовательно, TgtRngR, TgtRngB, TgtNme не определены.

Установка точки останова на Private Sub ExpBttn() и переходе через Sub с помощью F8.

+0

Спасибо большое за супер быстрый réponse я получил его :) Youre удивительным –