2017-01-18 7 views
2
値は、特定のセルに設定された後、私はENTERキーをプログラム的なプレスにしようとしています

:私はExcelで私のテーブル のリフレッシュをトリガすることができるようにプログラムプレスエクセルVBAで入力し

Private Sub TextBox1_Change() 
    If TextBox1.Text = "ALC Test" Then 
     Range("$F$2").Value = "17" 
     ActiveWorkbook.RefreshAll 
    End If 
    If TextBox1.Text = "ALC Prod" Then 
     Range("$F$2").Value = "54" 
     ActiveWorkbook.RefreshAll 
    End If 
    If TextBox1.Text = "" Then 
     Range("$F$2").Value = "" 
     ActiveWorkbook.RefreshAll 
    End If 
End Sub 

しかし、何の効果も持たない、値を変更し、「Enter」キーを押します:正しく

enter image description here

+0

あなたの質問は、実際に入力したキーを押すとされていませんが、値は、VBAを使用して更新された後に(リフレッシュ)再計算するために、あなたのテーブルを得意とします。あれは正しいですか? – davejal

+0

@davejalはいそれは私が私の答え –

+0

あるおかげであなたの答えのための多くは、私はそれを設定するHACEどこに私にもう少し文脈を与えることができますか?または何の代わりに? – davejal

答えて

2


あなただけの(リフレッシュ)あなたのテーブルのデータを再計算する場合は、次の手順を実行できます:あなたの状況で

Private Sub TextBox1_Change() 

If TextBox1.Text = "ALC Test" Then 
     Range("$F$2").Value = "17" 
     Range("$F$2").Select 
     Application.SendKeys("~") 

、あなたはセルを選択する必要があります(つまり、パラメータを保持している)の前にEnterコマンドはExcelに送信されます。

+0

あなたの答えはありがとうございますはい、私は例えば、私のテキストボックスに入力する「ALCテスト:それは元の質問から明らかでなかった場合、私は申し訳ありません –

+0

を更新するようにトリガーあなたが実際に達成したいのかに応じて、より多くのオプションがあります取得されていませんセルF2に17が表示されます。セルF2が私のテーブルには、フィールドが機能していない更新の一部を更新している魔女のパラメータフィールドとして設定されている、私は手動でそれが正常に動作し、私はそのようにそれを行う際に入力を入力してください何があるのでそれがトリガされていない取得されていないと思います – davejal

+0

、私は私の答えを編集した私のtabel –

0

何をされてやる仕事に縫い目することはありません。

使用

calculate 

またはそれを明確にするために、編集

activesheet.calculate 

sendkeysが正しい使い方
Private Sub TextBox1_Change() 
If TextBox1.Text = "ALC Test" Then 
    Range("$F$2").Value = "17" 
    calculate 
+0

ねえで編集して 'ActiveWorkbook.RefreshAll'を試してみてください –

+0

あなたのsendkeyの行を次のように置き換えてください: – Pierre

+0

そのようなApplication.Calculate( "〜") –

関連する問題