2017-07-20 10 views
0

私の目標は、セル内に列の文字を出力することです。InputBoxからユーザーの選択した列の文字を取得する

ここでは、セルをクリックするようにユーザーに指示します(このセル範囲のアドレスは、必要な文字になります)。その後、ユーザーの選択から列の文字を取得し、それをセルに書き込む別のサブを呼び出します。

Dim picker As Range 

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

Call WriteColFromPicker(picker, "H19") 

これが呼び出され、サブ:

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 

しかし、何もセルに書き込まされていません。私はいけないとき興味深いことに

、あなたが

はおそらくここに簡単な何かが足りない...私は何も返していない Debug.Printを持っているでしょうが、私は

別のノートにそれを見ることができない、それが正常に動作します私はこれをかなり数回と呼ぶつもりで、別のサブにそれを持っています。私は文字の抽出とセルへの書き込みを別のサブに分割しました。私は空のブックにこのコードをしようとしています

おかげ

+0

を....おそらくで'ワークシート(フォームコントロール)'。このコードの前のどこかに 'On Error Resume Next'がありますか? –

答えて

0

は、それが選択したセルの列の印刷、かなりうまく動作:あなたのコードは、以前にどこか壊れている

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 
関連する問題