Excel VBA質問箱 IV

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

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


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

【48779】シートのデータのコピー貼り付け 初心者です・・・ 07/5/8(火) 0:45 質問[未読]
【48780】Re:シートのデータのコピー貼り付け Kein 07/5/8(火) 2:26 回答[未読]
【48792】ありがとうございます(^O^) 初心者です・・・ 07/5/8(火) 22:02 お礼[未読]

【48779】シートのデータのコピー貼り付け
質問  初心者です・・・  - 07/5/8(火) 0:45 -

引用なし
パスワード
   はじめまして!
ご指導よろしくお願いいたします。
1.シート『選手総合成績』のRANGE("A2")から下方向に選手の名前が入ってるのですが既存の『その選手と同じ名前』のシートのRANGE("A2:F2")をコピーし、
2.シート『選手総合成績』のその選手の名前の右隣にそのコピーしたものを順次貼り付ける。
というマクロを組みたく以下のようにコーディングしたのですが、うまくいきません。

Dim kname, rg As Variant
Dim ksheet As Worksheet
Dim k1, k2, k3, k4, k5, k6, k7 As Integer
Dim ktime As Single
i = 2
Sheets("選手総合成績").Select
Range("A2").Select
Do Until Selection.Value = ""
kname = Selection.Value
For Each ksheet In Worksheets
If ksheet.Name = kname Then
ksheet.Select
k1 = Range("A2").Value
k2 = Range("b2").Value
k3 = Range("c2").Value
k4 = Range("d2").Value
k5 = Range("e2").Value
k6 = Range("f2").Value
k7 = Range("g2").Value
End If
Sheets("選手総合成績").Select
Set rg = Cells.Find(kname)
rg.Select
Selection.Offset(0, 1).Value = k1
Selection.Offset(0, 2).Value = k2
Selection.Offset(0, 3).Value = k3
Selection.Offset(0, 4).Value = k4
Selection.Offset(0, 5).Value = k5
Selection.Offset(0, 6).Value = k6
Selection.Offset(0, 7).Value = k7
Next
i = i + 1
Selection.Cells(i, 1).Select
Loop

ご指導よろしくお願いいたします。

【48780】Re:シートのデータのコピー貼り付け
回答  Kein  - 07/5/8(火) 2:26 -

引用なし
パスワード
   こんな感じかな ?

Sub 成績Copy1()
  Dim MyR As Range, C As Range

  With Sheets("選手総合成績")
   For Each C In .Range("A2", .Range("A65536").End(xlUp))
     On Error Resume Next
     Set MyR = Sheets(C.Text).Range("A2:G2")
     If Err.Number = 0 Then
      C.Offset(, 1).Resize(, 7).Value = MyR.Value
      Set MyR = Nothing
     Else
      Err.Clear
     End If
     On Error GoTo 0
   Mext
  End With
End Sub

Sub 成績Copy2()
  On Error Resume Next
  With Sheets("選手総合成績")
   .Activate
   With .Range("A2", .Range("A65536").End(xlUp)) _
   .Offset(, 1).Resize(, 7)
     .Formula = _
     "=INDIRECT(ADDRESS(2,COLUMN()-1,4,TRUE,$A2))
     .Copy
     .PasteSpecial xlPasteValues
     .SpecialCells(2, 16).ClearContents
   End With
  End With
  .Range("A1").Select
  Application.CutCopyMode = False
End Sub

【48792】ありがとうございます(^O^)
お礼  初心者です・・・  - 07/5/8(火) 22:02 -

引用なし
パスワード
   Keinさん
早速、返信くださいましてありがとうございます!
返信頂いたコードを自分なりに分析して勉強したいと思います。
ありがとうございました(^O^)

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