• 締切済み

excel2000マクロ操作

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

みんなの回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

やはり下にまだあったんですね。想像しきれませんでした。 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
質問者

お礼

出来ました。わかりやすい回答本当にありがとうございました。 今後は質問をわかりやすくしたいとおもいますので、 またわからない所がありましたらよろしくお願いします。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

想像して書いてみました。 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行目に入っているデータ はどうやって挿入できるのですか。教えてください。 お忙しい所申し訳ありません。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

マクロで挿入するのですか? 項目内容が変化する場合は、マクロなしでも算式で、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

  • urk
  • ベストアンサー率33% (18/53)
回答No.1

単に数式の  =sheet1!E3 ではだめですか?

関連するQ&A