2012-02-29 13 views
1

私はExcelで標準化されたフォームからデータを取り出す作業を進めています。私が状態を必要とするForms Control CheckBoxがあります。これを得る唯一の方法は、値がセルに配置されているセルリンクからのものです。問題は、誰でもこのフォームをまとめてセルリンクを設定しなかったことです。実行時にVBAを使用してこれを行う方法はありますか?これらのフォームの多くは私が通過しなければならないので、私は手動で行うことを避けようとしています。フォームチェックボックスの実行時にセルリンクを設定する

+0

:ユーザーフォーム上のチェックボックスコントロールを参照している場合は、ティムが指摘したように

Sub HTH() Dim iLoop As Integer '// Get value of check box by its index MsgBox (GetCheckBoxState(1)) '// Get value of check box by its name MsgBox (GetCheckBoxState("Check Box 1")) '// Loop through all checkboxes and get values For iLoop = 1 To ActiveSheet.CheckBoxes.Count MsgBox (GetCheckBoxState(iLoop)) Next End Sub Function GetCheckBoxState(vCheckBox As Variant) As String Select Case ActiveSheet.CheckBoxes(vCheckBox).Value Case xlOn GetCheckBoxState = "Checked" Case xlOff GetCheckBoxState = "UnChecked" Case xlMixed GetCheckBoxState = "Mixed" End Select End Function 

のようなものの場合でなければなりません。価値?このコントロールがワークシート上にある場合を除き、その場合はチェックボックスの名前を知っていますか? +1 Reafidy - あなたの過去の質問を確認し、いくつかの回答を受け入れるには数分かかります(あるいは、なぜ彼らがあなたのためにうまくいかなかったのか説明してください)。 –

+0

Tim、コントロールはワークシートにあります。チェックボックスの名前は「チェックボックス1」です。 –

答えて

0

私はあなたがワークシートに配置されたフォームチェックボックスコントロールを指していると思います。この場合、セルリンクを設定せずにコントロールの状態を取得できます。このように:frmTest.Checkbox1 `と間違って何

MsgBox (UserForm1.CheckBox1.Value) 
+0

これはトリックをしませんでした。 Select Caseは、アプリケーション定義またはオブジェクト定義エラーをスローします。デバッガでは、ボックスがチェックされているかどうかにかかわらず、vCheckBoxの値は-4146です。 –

+0

これでも助けが必要ですか? – Reafidy

+0

使用したチェックボックスが、その値を保持するためにセルにリンクされていると思われるようです。これは決して起こらなかったので、何かできるかどうかは分かりません。これは現在、バックバーナーに載っていますが、私はある時点で何らかの解決方法が必要になります。 –

関連する問題