|
こんにちは。
>Sheet1,Sheet2があるとして
>現在
><Sheet1>
>A B C D E F G ・・・・
>PASS NO 項目1 項目2 項目3 項目4 項目5 ・・・・
>abc 1 × ○×
>ded 5 × △
>※PASS=半角英数字 番号=連番ではない 項目1〜10まであり、データはない部分もあり,すべて文字列データ
>
>ここでやりたいことがSheet1にて、項目1〜10にてセルにデータがあれば
>Sheet2に同じ座標のセルに下記のようなデータを以下のように転記したいのです。
>
><Sheet2>
>A B C D E F G
>PASS NO 項目1 項目2 項目3 項目4 項目5
>abc 1 ./id.cgi?cm?tx1?num=1 ./id.cgi?cm?tx4?num=1
>ded 5 ./id.cgi?cm?tx1?num=5 ./id.cgi?cm?tx3?num=5
>
> ./id.cgi?cm?tx1?num=1 ←挿入したいデータ
> ↑ ↑
> 列番号 NO
>のようにSheet1にあるセルにデータがあれば、Sheet2の該当する同じ座標のセルに
>『./id.cgi?cm=・・・・・』 というデータを上記にある規則に従って
>挿入するようにしたいのですが、可能でしょうか?可能であれば、実際にどのような方法をすればよろしいでしょうか?ご教授お願いします
一箇所、不明な点がありましたが(Sheet1の項目1〜項目10が全て未入力だったデータも項目空白として転記するか否か? 、今回は転記しました)、
私は、こういう事例の場合は、関数を使うことが多いんですが・・・。
Sheet2には、1行目の各見出しだけコピーしておいて下さい。
'=================================================================
Sub test()
Dim rng As Range
With Worksheets("sheet1")
Set rng = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
If rng.Row > 1 Then
With Worksheets("sheet2")
.Range(rng.Resize(, 2).Address).Value = _
rng.Resize(, 2).Value
With .Range(rng.Offset(0, 2).Resize(, 10).Address)
.Formula = _
"=if(sheet1!c2<>"""",""./id.cgi?cm?tx""&column()-2&""?num=""&$b2,"""")"
.Value = .Value
End With
End With
End If
End Sub
確認してみて下さい
|
|