2016-08-22 4 views
0

Ich möchte einige Daten plotten, mein Code ist wirklich einfach, die Idee ist, nur zwei Bereiche zu haben, die die Spalten sind, die ich plotten möchte, um dies zu erreichen, erhalte ich sie mit vier Posteingangsfeldern wie folgt:Wie behebt man die folgende Fehlerzeichnung?

first = InputBox("first range", "Enter first range") 
    first1 = InputBox("second range", "Enter second range") 
    two = InputBox("second range", "Enter second range") 
    two1 = InputBox("second range", "Enter second range") 

Mein vollständige Code sieht wie folgt aus:

Sub ALL() 
    Dim ws As Worksheet 
    Dim rng As Range 
    Dim objChrt As ChartObject 
    Dim chrt As Chart 

    Set ws = ThisWorkbook.Sheets("Sheet1") 

    With ws 
     first = InputBox("first range", "Enter first range") 
     first1 = InputBox("second range", "Enter second range") 
     two = InputBox("second range", "Enter second range") 
     two1 = InputBox("second range", "Enter second range") 
     Set rng = .Range("first:first1,two:two1") 
     .Shapes.AddChart 
     Set objChrt = .ChartObjects(.ChartObjects.Count) 
     Set chrt = objChrt.Chart 

     With chrt 
      .ChartType = xlColumnClustered 
      .SetSourceData Source:=rng 
      End With 
     End With 
End Sub 

Mein Code sieht gut zu funktionieren, aber wenn ich es in einem Makros ausführen möchten, und ich geben sie den folgenden Bereich

A2 
A4 
B2 
B4 

in den entsprechenden Feldern und ich drücken Sie die Eingabetaste ich einen Fehler in der folgenden Zeile erhalten:

Set rng = .Range ("first: first1, zwei: zwei1")

ich diesen Fehler nicht beheben können, Ich schätze jeden Vorschlag, diese Situation zu überwinden, danke, wie auch immer.

+0

Änderung '.Range ("first: first1, zwei: zwei1")' auf '.Range (erste & ":" & first1, zwei &„: "& two1)' – cyboashu

+0

Danke für die Unterstützung, lass es mich überprüfen. – neo33

Antwort

1

Ihr Fehler liegt daran, alle Variablen in doppelte Anführungszeichen zu übergeben, damit sie als Zeichenfolge ausgewertet werden.

enter image description here

mit leichter Veränderung in InputBox Sie das gesamte Spektrum von Blatt selbst auswählen können.

Set rng = Application.InputBox(prompt:="Test", Type:=8) 

sehen: https://msdn.microsoft.com/en-us/library/office/ff839468.aspx

Sub test() 

    Dim rng As Range 

    first = "A2" 
    first1 = "A4" 
    two = "B2" 
    two1 = "B4" 

    '/Error 
    Set rng = Range("first:first1,two:two1") 

    '/Valid 
    Set rng = Range(first & ":" & first1, two & ":" & two1) 

    '/ Robust way 
    Set rng = Application.InputBox(prompt:="Sample", Type:=8) 

End Sub 
+0

Ich schätze wirklich die Unterstützung, lassen Sie mich das überprüfen. – neo33

Verwandte Themen