• 締切
  • すぐに回答を!

excel2000マクロ操作

  • 質問No.156672
  • 閲覧数80
  • ありがとう数1
  • 気になる数0
  • 回答数4
  • コメント数0
(1)枚目の表 E列    F列   
  コード S570SEM SEMEDS
時数 7.5  3

(2)枚目の表 UHRSEM SEMEDS S570SEM
           3    7.5

(1)枚目の表の時数のデータを(2)枚目の同じコードの列に時数を挿入する方法を
 教えてください。

回答 (全4件)

  • 回答No.4

ベストアンサー率 67% (851/1256)

他カテゴリのカテゴリマスター
やはり下にまだあったんですね。想像しきれませんでした。
4行、追加、変更します。

Public Sub Syukei()
  Dim wsDat As Worksheet
  Dim wsIns As Worksheet
    Set wsDat = Worksheets("Sheet1")
    Set wsIns = Worksheets("Sheet2")
  Dim col1 As Integer, col2 As Integer
  Dim rw As Long '*** 追加 ***

  With wsIns
    For col2 = 1 To .Range("A1").End(xlToRight).Column
      For col1 = wsDat.Range("E1").Column To wsDat.Range("F1").Column
        If .Cells(1, col2) = wsDat.Cells(1, col1) Then
          For rw = 2 To wsDat.Cells(65536, col1).End(xlUp).Row '*** 追加 ***
            .Cells(rw, col2) = wsDat.Cells(rw, col1) '*** 変更 ***
          Next '*** 追加 ***
        End If
      Next
    Next
  End With
End Sub
お礼コメント
noname#72697
出来ました。わかりやすい回答本当にありがとうございました。
今後は質問をわかりやすくしたいとおもいますので、
またわからない所がありましたらよろしくお願いします。
投稿日時:2001/10/25 12:57
  • 回答No.3

ベストアンサー率 67% (851/1256)

他カテゴリのカテゴリマスター
想像して書いてみました。
Sheet1のデータをSheet2に挿入します。
Sheet2のUHRSEMがA1セルにあるとします。

標準モジュールに貼り付けます。ご参考に。
Public Sub Syukei()
  Dim wsDat As Worksheet '1枚目の表あるシート
  Dim wsIns As Worksheet '2枚目の表あるシート
    Set wsDat = Worksheets("Sheet1")
    Set wsIns = Worksheets("Sheet2")
  Dim col1 As Integer, col2 As Integer '列カウンタ

  With wsIns 'コードを調べる
    For col2 = 1 To .Range("A1").End(xlToRight).Column
      For col1 = wsDat.Range("E1").Column To wsDat.Range("F1").Column
        If .Cells(1, col2) = wsDat.Cells(1, col1) Then
          .Cells(2, col2) = wsDat.Cells(2, col1)
        End If
      Next
    Next
  End With
End Sub
補足コメント
noname#72697
回答ありがとうございました。また質問ですが
Sheet1の2行目のデータは、Sheet2に挿入できたのですが、例えば3行目から50行目に入っているデータ
はどうやって挿入できるのですか。教えてください。
お忙しい所申し訳ありません。
投稿日時:2001/10/25 09:59
  • 回答No.2

ベストアンサー率 67% (851/1256)

他カテゴリのカテゴリマスター
マクロで挿入するのですか?

項目内容が変化する場合は、マクロなしでも算式で、SEMEDSがSheet2のB1にあるとして、B2セルに

=IF(ISERROR(HLOOKUP(B1,Sheet1!$E$1:$F$2,2,FALSE)),"",HLOOKUP(B1,Sheet1!$E$1:$F$2,2,FALSE))

をセットすれば出ますが・・・(1枚目の表はSheet1にあるとしています。)
$E$1:$F$2は実際の範囲に変えて下さい。右左にコピーできます。Sheet1の範囲を照合して値を表示しています。挿入ではなく、あらかじめ式を登録しておきます、こういう意味?

マクロで行なうには、2枚目の表の項目名と1枚目の項目名を比較して、一致したら値を書きこむことになります。
質問があいまいでコードは書きづらいですね。
補足コメント
noname#72697
マクロで挿入したいと思います。下記のモジュールを修正すれば出来ると思いますが
よろしくお願いします。

Public Sub Syukei()
  Dim wsDat As Worksheet '1枚目の表あるシート
  Dim wsIns As Worksheet '2枚目の表あるシート
    Set wsDat = Worksheets("Sheet1")
    Set wsIns = Worksheets("Sheet2")
  Dim col1 As Integer, col2 As Integer '列カウンタ

  With wsIns 'コードを調べる
    For col2 = 1 To .Range("A1").End(xlToRight).Column
      For col1 = wsDat.Range("E1").Column To wsDat.Range("F1").Column
        If .Cells(1, col2) = wsDat.Cells(1, col1) Then
          .Cells(2, col2) = wsDat.Cells(2, col1)
        End If
      Next
    Next
  End With
End Sub
投稿日時:2001/10/25 10:23
  • 回答No.1

ベストアンサー率 33% (18/53)

単に数式の
 =sheet1!E3
ではだめですか?
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ