これが可能かどうか、どうすればいいか知りたいです。 私は2枚のブックを持っています。 Sheet2には50の異なるレコードを持つ複数の列があります。私は再生ボタンまたは実行ボタンをクリックして "再生/実行"すると1つの列を持ち、その列にはsheet2から列が1つもなくなるまでsheet2の各列のレコードが表示されます。さらに、ディスプレイは次の列にサイクリングする前に5秒の間隔を有する。一度に1列を表示する
iの時間間隔を行う方法を見つけたが、事前
これが可能かどうか、どうすればいいか知りたいです。 私は2枚のブックを持っています。 Sheet2には50の異なるレコードを持つ複数の列があります。私は再生ボタンまたは実行ボタンをクリックして "再生/実行"すると1つの列を持ち、その列にはsheet2から列が1つもなくなるまでsheet2の各列のレコードが表示されます。さらに、ディスプレイは次の列にサイクリングする前に5秒の間隔を有する。一度に1列を表示する
iの時間間隔を行う方法を見つけたが、事前
でない表示
'time interval
Application.Wait Now + TimeSerial(0, 0, 5)
'displaying i have been using copy/paste but it does not work.
おかげでVBAモジュールにこれらの手順を追加します。次に、ボタンやテキストボックス/ etcを追加します。シェイプを右クリックして[マクロの割り当て]を選択し、MyButtonClick
プロシージャを選択します。これにより、マクロがボタンに関連付けられます。
次に、あなただけの列をループする必要があり、そのようにコピー/ペースト:
Sub MyButtonClick()
Dim ws1 as Worksheet, ws2 as Worksheet
Dim cols as Range, c as Range
Set ws1 = ThisWorkbook.Sheets("Sheet1")
Set ws2 = ThisWorkbook.Sheets("Sheet2")
Set cols = ws2.Range("A1:G50") '## Modify as needed
For Each c in cols.Columns
c.Copy Destination:=ws1.Range("A1") '## Puts the column in Sheet1, Column A
Call WaitForIt(5)
Next
End Sub
Sub WaitForIt(seconds as Long)
Application.Wait Now + TimeSerial(0, 0, seconds)
End Sub
ちょうど私が思っていたことです!ちょっと好奇心が強い、なぜあなたは待っている部分のための別のサブをしたのですか? – BruceWayne
@BruceWayneこの非常にシンプルなケースでは、個人的な好みではありませんが、大きなアプリケーションで使用される場合には「Wait」はいつどこから呼び出されるかによってさまざまな待機時間を使用する可能性があります。したがって、IMOはサブルーチンパラメータを渡すだけです。さらに、OPにとってサブルーチンの使い方を学ぶための、とても簡単な例です:D –
Gotcha、乾杯! – BruceWayne
やや最小限-VBAのアプローチ:
はSheet2のように見えることを言います
次に、シート1に、record
(この場合はA2セル)という1セルを作成します。
式を置く:
=IF(NOT(ISBLANK(INDIRECT("Sheet2!R"&ROW()&"C"&record,FALSE))),INDIRECT("Sheet2!R"&ROW()&"C"&record,FALSE),"")
とその後シートで最長記録と同じくらい多くの行のために2
をそれを下にコピーする - VBAの一部だけで持つことができますステートメントを持つループ
Range("record").Value = i
(i
レコードを含む列番号)。スプレッドシートの式は正しい値を引きます。
Sheet1の列AをSheet2列Aに設定し、次に待機し、Sheet1 Col A、列Bに等しく設定します。 – BruceWayne