2017-01-24 4 views
0

Ich habe die gleiche Art von Fragen hier aber nicht in der Lage zu lösen ... bitte helfen. Hai Sir derzeit bin ich in einem Projekt, um alle Excel-Makro 2003 Format im Jahr 2007 zu übertragen.Das Problem, das ich konfrontiert ist Methode Bereich des Objekts _global fehlgeschlagen Bitte stellen Sie mir eine Lösung.Methode Bereich von Objekt _global fehlgeschlagen in benannten Bereich

Bitte beachten Sie den Code ... es reichen („Phasewt“) nicht aktualisiert .... keiner der benannten Bereiche in diesem Arbeitsbuch aktualisieren, überall seine zeigt Fehler 1004: Iam jetzt Office 2007 verwenden.

Private Sub FormatRowsAndSum(ByVal TotRows As Integer, StartRow As Integer) 
    Dim rngFormat As Range 

     'adds formatting 
    If TotRows > 2 Then 
     Set rngFormat = Range(Cells(StartRow + 2, 2), Cells(TotRows + StartRow + 1, 8)) 
     'Range("B11:H11").Select 
     Range(Cells(StartRow + 1, 2), Cells(StartRow + 1, 8)).Select 

     Selection.Copy 
     rngFormat.Select 
     Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ 
      SkipBlanks:=False, Transpose:=False 

     'adds formula 
     Set rngFormat = Range(Cells(StartRow + 2, 11), Cells(TotRows + StartRow, 12)) 
     'Range("K11:L11").Select 
     Range(Cells(StartRow + 1, 11), Cells(StartRow + 1, 12)).Select 

     Selection.Copy 
     rngFormat.Select 
     Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ 
      SkipBlanks:=False, Transpose:=False 

     Application.CutCopyMode = False 

    End If 

    ActiveSheet.PageSetup.FitToPagesWide = 1 

    Cells(TotRows + StartRow + 1, 2) = "TOTALS" 
    Cells(TotRows + StartRow + 1, 2).Font.Bold = True 
    Cells(TotRows + StartRow + 1, 2).RowHeight = 20 

    Range(Cells(TotRows + StartRow + 1, 2), Cells(TotRows + StartRow + 1, 8)).Select 
    With Selection.Borders(xlEdgeTop) 
     .LineStyle = xlContinuous 
     .Weight = xlThin 
    End With 
    With Selection.Borders(xlEdgeBottom) 
     .LineStyle = xlContinuous 
     .Weight = xlThin 
    End With 


    'writes total weight 
    With Cells(TotRows + StartRow + 1, 6) 
     .Value = "=SUM(K" & StartRow & ":K" & TotRows + StartRow & ")" 
     .Font.Bold = True 
     .NumberFormat = "#,##0.00" 
    End With 
    If Range("ReleaseTo") <> "STR" Then 
     Range("PhaseWt") = Cells(TotRows + StartRow + 1, 6) ' writes total wt in cover page 
    End If 

    'writes total cladding Area 
    With Cells(TotRows + StartRow + 1, 7) 
     .Value = "=SUM(L" & StartRow & ":L" & TotRows + StartRow & ")" 
     .Font.Bold = True 
     .NumberFormat = "#,##0.00" 
    End With 
    If Cells(TotRows + StartRow + 1, 7) > 0 Then 
     If Range("ReleaseTo") <> "STR" Then 
      Range("PhaseArea") = Cells(TotRows + StartRow + 1, 7) ' writes total Area in cover page 
     End If 
    End If 

    'writes total quantity 
    With Cells(TotRows + StartRow + 1, 3) 
     .Value = "=SUM(C" & StartRow & ":C" & TotRows + StartRow & ")" 
     .Font.Bold = True 
     .NumberFormat = "#,##0" 
    End With 

    Range("B4").Select 
End Sub 

danke für Ihre Aufmerksamkeit.

+0

Willkommen bei Stack-Überlauf! Sie können [die Tour] (http://stackoverflow.com/tour) zuerst und lernen [Wie man eine gute Frage stellt] (http://stackoverflow.com/help/how-to-ask) und erstellen Sie eine [ Minimal, vollständig und verifizierbar] (http://stackoverflow.com/help/mcve) Beispiel. Das erleichtert es uns, Ihnen zu helfen. –

Antwort

0

Das „Objekt _global fehlgeschlagen“ Fehler angezeigt, da Excel nicht die angegebenen Bereiche in der Arbeitsmappe nicht finden, so stellen Sie sicher, dass Sie die Bereiche haben "ReleaseTo", "PhaseWt", "PhaseArea" in der irgendwo in der Datei definiert.

EDIT: Versuchen Sie den Code von diesem zu nennen:

Sub test() 
With ActiveSheet 
.Range("B13").Name = "jobno" 
.Range("D13").Name = "bldgno" 
.Range("F13").Name = "phaseno" 
.Range("D15").Name = "project" 
.Range("D16").Name = "Client" 
.Range("J15").Name = "location" 
.Range("K12").Name = "PhaseWt" 
.Range("K13").Name = "PhaseArea" 
End With 

Call FormatRowsAndSum(1, 10) 

End Sub 
+0

diese Bereiche sind da das ist 100% sicher .. eigentlich diese Bereich Namen werden von vb2006 Code zur Verfügung gestellt ... die funktioniert gut .... Mit ExcelDoc.ActiveSheet .Range ("B13"). Name = "Jobno" .Range ("D13"). Name = "bldgno". .Range ("F13"). Name = "phaseno" .Range ("D15"). Name = "Projekt" .Range ("D16"). Name = "Client" .Range ("J15"). Name = "Standort" .Range ("K12"). Name = "PhaseWt" .Range ("K13"). Name = "PhaseArea" – bijithpp

+0

Was sind? die 'TotRows' und' StartRow' Werte? Ich habe Ihren Code (Excel2010) ausgeführt und es funktioniert gut. Versuchen Sie, die Bereichsdefinitionen in den VBA-Code einzufügen. – Wujaszkun

+0

TotRows = 1 & StartRow = 10, wie man die Entfernungsdebition iside der VBA-Code ... kann man ein Beispiel geben – bijithpp

Verwandte Themen