プロが教える店舗&オフィスのセキュリティ対策術

(1)枚目の表 E列    F列   
  コード S570SEM SEMEDS
時数 7.5  3

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

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/25 12:57

想像して書いてみました。


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

この回答への補足

回答ありがとうございました。また質問ですが
Sheet1の2行目のデータは、Sheet2に挿入できたのですが、例えば3行目から50行目に入っているデータ
はどうやって挿入できるのですか。教えてください。
お忙しい所申し訳ありません。

補足日時:2001/10/25 09:59
    • good
    • 0

マクロで挿入するのですか?



項目内容が変化する場合は、マクロなしでも算式で、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枚目の項目名を比較して、一致したら値を書きこむことになります。
質問があいまいでコードは書きづらいですね。

この回答への補足

マクロで挿入したいと思います。下記のモジュールを修正すれば出来ると思いますが
よろしくお願いします。

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
    • good
    • 0

単に数式の


 =sheet1!E3
ではだめですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!