2012-02-01 7 views
0

私はVBで初心者です。最初のボタンをクリックしているときに値を配列に格納し、2番目のボタンをクリックしたときに結果を表示したいとします。私は正常に値を配列に格納しています。しかし、私は私を助けてくださいすることができます。..番目のボタンをクリックしてイベントにvbのボタンクリックイベント

Dim i As Integer 
Dim ag(0 To 7000) As String 
Dim bg(0 To 7000) As String 

Private CommandButton1_Click() 
    i = 0 

    Sheets("New").Select 
    Range("B2").Select 

    While Not IsEmpty(ActiveCell) 
    ag(i) = ActiveCell.Value 
    i = i + 1 
    ActiveCell.Offset(1, 0).Select 
    Wend 

    i = 0 

    Sheets("New").Select 
    Range("D2").Select 

    While Not IsEmpty(ActiveCell) 
    bg(i) = ActiveCell.Value 
    i = i + 1 
    ActiveCell.Offset(1, 0).Select 
    Wend 
End Sub 

Private CommandButton2_Click() 
    UserForm1.Hide 
End Sub 

Private Sub Cell_Click() 
End Sub 

Private Sub CommandButton1_Click() 
End Sub 

Private Sub CommandButton2_Click() 
End Sub 

いずれかを同じアレイにアクセス傾けます。

+2

あなたが質問を投稿しているとき、あなただけのどこ点以下にリアルタイムに)(特にコードのフォーマットを、それをプレビューすることができますあなたはそれを入力しています。そうすることをお勧めします。そうすれば、あなたの投稿は、あなたを助けるためにそれを読むことを試みている人々にとってより明確になります。 (適切に書式を設定すると、他の人が時間を費やす必要がないということも意味します)明確な質問(明確な書式設定を含む)は、回答をより迅速に得るのに役立ちます。 :) –

+2

また、2回目のボタンクリックでそれらにアクセスする際の問題は、何もしないことです。あなたの 'CommandButton2_Click()'ハンドラは単に 'Userform'を隠すだけです - あなたは' CommandButton1_Click()で作成された配列にどのようにアクセスするのですか? –

+1

* "しかし、2番目のボタンクリックイベントで同じ配列にアクセスすることはできません。" –

答えて

0

Nimmy

私のポストはあなたの主な質問に答えることに関するものではありません:)あなたはケンのを見て、コーディのコメントは、あなたが自動的に答えがようであるものを実現する場合は、)私はコメントを助けることができなかった

あなたのコードとあなたの声明があなたが初心者であることを見たとき。私はコーディングを学んだり、SOのようなフォーラムで実際にコーディングスキルを向上させるのに役立ちました。だから、あなたが淡色表示されていることをokです見返りとして、あなたの場合は:-D

1)これを考慮することができ私として整数いますが、例えば、32768のためにはるかに大きなされる行を扱っているとき、何が起こります行。 VBA Excelで作業する場合、のようにiを淡色表示することは安全です。

2)。は、VBAで作業するときのエラーの主な原因であり、コードの処理速度が遅くなることは言及していません。同じコードを以下のコードで記述することもできます。私は第1行と最後の行の間に空白の値がないと仮定しています。

Dim i As Long 
Dim ag(0 To 7000) As String 
Dim bg(0 To 7000) As String 
Dim ws As Worksheet 

Private CommandButton1_Click() 
    Set ws = Sheets("New") 

    With ws 
     For i = 2 To .Range("B" & .Rows.Count).End(xlUp).Row 
      ag(i) = .Range("B" & i).Value 
     Next 
     For i = 2 To .Range("D" & .Rows.Count).End(xlUp).Row 
      bg(i) = .Range("D" & i).Value 
     Next 
    End With 
End Sub 

HTHとはい、コーディングハッピー;)

シド

関連する問題