Page 572 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼教えてください(−_−) LOOPのなかのCOPYPASTEがうまくいきません。 takasi 03/1/19(日) 0:38 ┗Re:教えてください(−_−) LOOPのなかのCOPYPASTEがうまくいきません。 JuJu 03/1/19(日) 1:47 ┣お返事ありがとうございます。 takasi 03/1/19(日) 12:00 ┃ ┗余談 JuJu 03/1/19(日) 23:29 ┗解決しました。 takasi 03/1/19(日) 23:00 ┗Re:解決しました。 JuJu 03/1/19(日) 23:33 ┗明日さっそく試します。 takasi 03/1/21(火) 0:47 ─────────────────────────────────────── ■題名 : 教えてください(−_−) LOOPのなかのCOPYPASTEがうまくいきません。 ■名前 : takasi ■日付 : 03/1/19(日) 0:38 -------------------------------------------------------------------------
仕事でマクロを組んでおります。 詳しい方にぜひ教えを請いたいです。 WINDOWを2つ開き一方のデータをCOPYしもう一方のWINDOW へPASTEするのをLOOP WHILEで繰り返ししましたが 最初のデータがPASTEされません。 なぜでしょうか? |
takasiさん、こんにちはぁ >WINDOWを2つ開き一方のデータをCOPYしもう一方のWINDOW >へPASTEするのをLOOP WHILEで繰り返ししましたが >最初のデータがPASTEされません。 どのようなコードを書いていますか? コピーもいろいろやり方があるので、具体的な内容が分からないとアドバイスが難しいです。 ではではぁ |
▼JuJu さん こんにちは 貼っつけちゃいますが、ちょっと見てやってください。 Sub 明細転記() ’札価変更明細票作成 ' マクロ記録日 : 2003/1/18 Dim i As Integer Dim j As Integer Dim k As Integer Windows(2).Activate i = Range("J1").CurrentRegion.Rows.Count - 1 j = 21 k = 2 Do Windows(2).Activate Cells(k, 14).Select Application.CutCopyMode = False Selection.Copy Windows("札価変更明細.xls").Activate Cells(j, 2).Select ActiveSheet.Paste j = j + 1 k = k + 1 Loop While j <= i + 20 End Sub |
takasiさん、こんにちはぁ SelectやActivateを使わない方法もあります。 > Cells(k, 14).Select > Selection.Copy は、 Cells(k, 14).Copy > Cells(j, 2).Select > ActiveSheet.Paste は、 Cells(j, 2).Paste に置き換えが可能です。 (選択しない分、すこし速いかも) ブック名、シート名が分かっているのでしたら、 Workbooks("コピー元ブック名").Sheets("コピー元シート名").Cells(k, 14).Copy Workbooks("コピー先ブック名").Sheets("コピー先シート名").Cells(j, 2) と1行で書くこともできます。 Copyメソッドは指定範囲の一括コピーもできるので、Do分やFor分でまわさなくても1行でコピーすることもできますよ。 ではではぁ |
JuJu さんありがとうございます。 LOOPかWINDOWの問題だと思い いろいろ試しました WHILEをUNTILにしたり 前にもってきたり後にしたり SPECIALPASTEしたりと 結果は同じでしたのでWINDOWの問題だと確信しました LOOPの前にWINDOW ACTIVE をもってきたら解決しました。 また今日問題に突き当たりました 1から17までを繰り返しデータ行数まで付番したいのですが FOR 1 TO 17 では1回しか付番しませんので おそらくDO LOOP でやらないといけないと思いますが、記述がわかりません 教えてちょう (名古屋ですので) |
takasiさん、こっちもこんにちはぁ >1から17までを繰り返しデータ行数まで付番したいのですが >FOR 1 TO 17 >では1回しか付番しませんので >おそらくDO LOOP >でやらないといけないと思いますが、記述がわかりません For分の中にFor分を書きます。 For i = 1 To 17 For j = ...(データ行数) (処理) Next Next ではではぁ |
forのなかにforを書くなんて思いもよりませんでした 自分なりに今日休みで思いついたのは do loopで1から17までセルバリューを繰り返すことです これでもいけそうな気もします 素人考えですが 余談ですが私は名古屋近郊在住で 42歳です、百貨店で値札を毎日作っております 毎日単純なエントリー仕事です でも自分はプロ意識が強く、単純なしごとは早く片付けて マクロの勉強しております 左足が悪く一応障害者で結婚もしておりません シスアドも3回受けましたがだめでした これで4回目です 遊んでばかりいますのでだめです 毎日酒飲んでます これが簡単なプロフィールです こんなぐうたら人間ですがよろしくご指導お願いします 一方のファイルの名前が確定できないのです そこがちょっとめんどうです |