2017-07-20 4 views
0

Mein Ziel ist es, einen Spaltenbuchstaben in einer Zelle auszugeben.Get Spalte Brief Ausgabe von Benutzern Auswahl von InputBox

Das Sub hier fragt den Benutzer auf eine Zelle klicken (Diese Zelle Bereich Adresse wird der Buchstabe ich will). Ruft dann ein anderes Sub auf, das den Spaltenbuchstaben von der Benutzerauswahl erhält und in die Zelle schreibt.

Dim picker As Range 

Set picker = Application.InputBox("Column for total number of bar", "Choose column", Type:=8) 

Call WriteColFromPicker(picker, "H19") 

Dies ist die genannte Unter:

Sub WriteColFromPicker(pickedRng As Range, targetCell As String) 
'Writes the column letter to Form controls - Used in column letter picker 

Dim ws As Worksheet: Set ws = Worksheets("Form Controls") 

Debug.Print targetCell 

Dim chosen As String: chosen = Split(pickedRng.Address, "$")(1) 
      ws.Range(targetCell).Value = chosen 

End Sub 

jedoch in die Zelle nichts geschrieben wird.

Interessanter

, sehen Sie, ich Debug.Print haben, die nichts zurückkehrende ...

Wahrscheinlich etwas Einfaches hier fehlt, aber ich kann es nicht

Noch ein Hinweis sehen, es funktioniert gut, wenn ich nicht habe es in getrennten Subs, ich habe die Buchstabenextraktion und das Schreiben in die Zelle in ein anderes Sub geteilt, wie ich es einige Male nennen möchte.

Dank

+0

Ihr Code hat schon irgendwo gebrochen .... wahrscheinlich 'Arbeitsblätter (" Form Controls ")'. Haben Sie irgendwo vor diesem Code 'On Error Resume Next'? –

Antwort

0

ich diesen Code in eine leere Arbeitsmappe bin versucht, es funktioniert ganz ok, das Drucken der Spalte der ausgewählten Zelle:

Option Explicit 

Public Sub TestMe() 

    Dim picker As Range  
    Set picker = Application.InputBox("Column for total number of bar", "Choose column", Type:=8) 
    Call WriteColFromPicker(picker) 

End Sub 

Sub WriteColFromPicker(pickedRng As Range) 

    Dim ws As Worksheet: Set ws = Worksheets(1) 
    Dim chosen As String: chosen = Split(pickedRng.Address, "$")(1) 
    Debug.Print chosen 

End Sub