Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10887 / 13646 ツリー ←次へ | 前へ→

【19351】1行おきにデータをコピー 初心者です 04/10/28(木) 21:27 質問[未読]
【19352】Re:1行おきにデータをコピー ISK 04/10/28(木) 22:12 回答[未読]
【19388】Re:1行おきにデータをコピー 初心者です 04/10/30(土) 1:12 お礼[未読]
【19355】Re:1行おきにデータをコピー Kein 04/10/28(木) 23:16 回答[未読]
【19356】Re:1行おきにデータをコピー Kein 04/10/28(木) 23:18 発言[未読]

【19351】1行おきにデータをコピー
質問  初心者です  - 04/10/28(木) 21:27 -

引用なし
パスワード
   よろしくお願いします。

-------------------------------------
A    B    C    
¥ 1000       
$ 2000       
¥ 1000       
$ 2000      
-------------------------------------

この表の$を下のように右斜め上に移動させたいのですが、

-------------------------------------
A    B    C  
¥  1000   2000
      
¥  1000   2000   
-------------------------------------
はじめのデータはA3のセルにあります。
データの数は下に200〜300あります。

  Range("A3").Select
  Selection.Copy
  Application.CutCopyMode = False
  Selection.Cut
  ActiveCell.Offset(-1, 1).Select
  ActiveSheet.Paste

上のマクロをFor Nextでデータの終わりまで処理するにはどうしたらいいのでしょうか?参考書を色々読んだのですが、分かりませんでした。
よろしくお願いします。

【19352】Re:1行おきにデータをコピー
回答  ISK  - 04/10/28(木) 22:12 -

引用なし
パスワード
   ▼初心者です さん:
>よろしくお願いします。
>
>-------------------------------------
>A    B    C    
>¥ 1000       
>$ 2000       
>¥ 1000       
>$ 2000      
>-------------------------------------
>
>この表の$を下のように右斜め上に移動させたいのですが、
>
>-------------------------------------
>A    B    C  
>¥  1000   2000
>      
>¥  1000   2000   
>-------------------------------------
>はじめのデータはA3のセルにあります。
>データの数は下に200〜300あります。
>
>  Range("A3").Select
>  Selection.Copy
>  Application.CutCopyMode = False
>  Selection.Cut
>  ActiveCell.Offset(-1, 1).Select
>  ActiveSheet.Paste
>
>上のマクロをFor Nextでデータの終わりまで処理するにはどうしたらいいのでしょうか?参考書を色々読んだのですが、分かりませんでした。
>よろしくお願いします。


作業の流れを明快に示しました。
参考までに試してみてください。

Private Sub CommandButton1_Click()
With Sheet1
  'データの個数を調べます。
  TTLDATA = Application.WorksheetFunction.CountA(.Range("A3:A1000")) + 2

  For i = 3 To TTLDATA
    TG = .Range("A" & i).Value
    If TG = "$" Then
     '該当するデータを右上に移動させます。
     .Range("C" & i - 1).Value = .Range("B" & i).Value
     '移動後に元のデータを消去します。
     .Range("A" & i & ":B" & i).Value = ""
    End If
  Next
End With
End Sub

【19355】Re:1行おきにデータをコピー
回答  Kein  - 04/10/28(木) 23:16 -

引用なし
パスワード
   B列の最終入力行の行番号は、必ず偶数であるという前提で

Sub MyData_Move()
  With Range("B1", Range("B65536").End(xlUp)).Offset(, 1)
   .Formula = "=IF(MOD(ROW(),2)>0,$B2,""A"")"
   .Copy
   .PasteSpecial xlPasteValues
   .SpecialCells(2, 2).EntireRow.ClearContents
  End With
  Application.CutCopyMode = False
End Sub

というコードで、出来ると思います。
 

【19356】Re:1行おきにデータをコピー
発言  Kein  - 04/10/28(木) 23:18 -

引用なし
パスワード
   >はじめのデータはA3のセル
でしたね。すると・・
>With Range("B1", Range("B65536").End(xlUp)).Offset(, 1)


With Range("B3", Range("B65536").End(xlUp)).Offset(, 1)

になります。

【19388】Re:1行おきにデータをコピー
お礼  初心者です  - 04/10/30(土) 1:12 -

引用なし
パスワード
   Keinさん ISKさん ご指導ありがとうございました。
両方ともちゃんと動作しました。
ほんとに感謝感謝です。


▼ISK さん:
>▼初心者です さん:
>>よろしくお願いします。
>>
>>-------------------------------------
>>A    B    C    
>>¥ 1000       
>>$ 2000       
>>¥ 1000       
>>$ 2000      
>>-------------------------------------
>>
>>この表の$を下のように右斜め上に移動させたいのですが、
>>
>>-------------------------------------
>>A    B    C  
>>¥  1000   2000
>>      
>>¥  1000   2000   
>>-------------------------------------
>>はじめのデータはA3のセルにあります。
>>データの数は下に200〜300あります。
>>
>>  Range("A3").Select
>>  Selection.Copy
>>  Application.CutCopyMode = False
>>  Selection.Cut
>>  ActiveCell.Offset(-1, 1).Select
>>  ActiveSheet.Paste
>>
>>上のマクロをFor Nextでデータの終わりまで処理するにはどうしたらいいのでしょうか?参考書を色々読んだのですが、分かりませんでした。
>>よろしくお願いします。
>
>
>作業の流れを明快に示しました。
>参考までに試してみてください。
>
>Private Sub CommandButton1_Click()
>With Sheet1
>  'データの個数を調べます。
>  TTLDATA = Application.WorksheetFunction.CountA(.Range("A3:A1000")) + 2
>
>  For i = 3 To TTLDATA
>    TG = .Range("A" & i).Value
>    If TG = "$" Then
>     '該当するデータを右上に移動させます。
>     .Range("C" & i - 1).Value = .Range("B" & i).Value
>     '移動後に元のデータを消去します。
>     .Range("A" & i & ":B" & i).Value = ""
>    End If
>  Next
>End With
>End Sub

10887 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free