システムwiki

コマンドボタンマクロ.コピーとインクリメントを印刷するワンクリック

jampac 受付中 最終更新日:2021-06-14 11:24

ワークシート1は範囲A3:C3
を含みます A3= NOW()B3は001,002,003 ...などからチケット番号です.C3はユーザー入力チケット価格です.コマンドボタンをクリックしてチケットを印刷してください.同時にシート2に範囲をコピーし、チケット番号を前進させます.
****シート2にコピーするコードは最後の下に1行目にコピーしますか?

返信リスト(回答:1)

1 #
OssieMa

以下のコードは、データを印刷および保存する前に、ここで式()でセル内の値を修正します.その理由は、保存された時間に異なる時期に印刷されたチケットの状況を取得しないようにすることです.これにはまれであるかもしれませんが
発生するには、それが発生することができないように状況を処理するのが最善です.

あなたはあなたの質問の例に従って常に3桁になるようにカスタム番号のformatcolumn bを必要とする必要があります.列のカスタムフォーマットはハッシュ(または数字シンボル)に続けて3ゼロの後に続いて行われます.#000

(注:編集された#シンボルは編集された#シンボルが編集され、Excelの識別を克服するための最初の投稿から追加されました).

どんな問題も私に戻って自由に感じます

サブPrintAndSave()
WSSOURCEとしてワークシートとしてムラ
ワークシートとしてムラwsdestin
薄型RNGToCopy
Dim RngDestin範囲として
SET WSSOURCE= ActiveSheet 'がActiveSheetで起動すると仮定します. wsdestin=ワークシート( "sheet2") 'を設定すると、データを保存するシート名に「Sheet2」を編集します. 最新の時間に「NOW()の強制更新を最新の時間に計算します.
WSSourceを使用する
.Range( "A3").値=.Range( "A3").値 'now()を設定されているセルを固定値に設定します. set rngtocopy=.range( "a3:c3") 'コピーする範囲を割り当て範囲を割り当てる


ActiveWindow.SelectedSheets.Printoutコピー:= 1 'チケットを印刷する
WSDestin 'では、データが保存されている宛先シートです.
'next lineは列aの次の空白セルを範囲変数に割り当てます. RNGDestin=.cells(.rows.count、 "A")を設定します.end(xlup).OFFSET(1,0)


rngtocopy
'ソースシートから宛先シートへの値をコピーする
'宛先範囲はコピーされたデータサイズと一致するようにサイズ変更されます.
rngdestin.Resize(.rews.count、.columns.value= rngtocopy.value


WSSourceを使用する
.Range( "A3").Cell A3のForumlaを再挿入する「Forumlaを再挿入する」
.Range( "C3").ClearContents 'Nextエントリの価格をクリアする
'次の行:セルB3のインクリメント値B3から目的地欄B Plus 1
・.Range( "B3")= worksheetfunction.max(wsdestin.columns( "b:b"))+ 1


終了SUB