![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
会社の端末移設作業を行っています。
エクセルブックに2シートがありシート1には社員の座席、名前、電話番号、PCの情報を入力しています。シート2には座席の平面図を手動で作成しています。平面図はいつも異なる為手動で作ります。
シート1のB列に座席番号を入力します。C列には電話番号、D列にはその他。それがR列まで続く。
※C列からR列までには情報がはいっている場合もない場合もある。
30名の移動があれば、30行の情報を入力する。
それをシート2の平面図に入れるコマンドが知りたいです
シート2平面図には30名(今回は)のデスク番号だけを入力する。
ここからが知りたいコマンドになります。
シート1のB列の1行目に入力されている座席番号を参照し、シート2で同じ座席番号をrangeで検索し、見つけたらその座席番号の下にシート1のC列からR列の情報をシート2(該当の座席番号)の下のセルに転記したいです。必ずしもC〜R列まですべてが入力されているわけではないので、ない場合はスキップしR列まで処理をしてほしい。シート2は座席番号につめて転記したいです。
それをdountil でシート30行(今回は)を転記したいです。又は31行目が空白になるので、
そこで終了したいです。
例:シート2の平面図
b1 座席番号
b2 名前
b3 電話番号
b4 PC 情報
b5 等々
エラーコマンドと msgboxは問題なく作動しています
宜しくお願いします。
No.2ベストアンサー
- 回答日時:
10マス固定であれが、こんな感じでしょうか。
でも、C〜R列がフルに埋まっていたら、10マス超えますよね。
Sub sample()
Dim I As Long
Dim TargetRange As Range
For I = 1 To Sheets("Sheet1").UsedRange.Rows.Count
If Sheets("Sheet1").Cells(I, "B") <> "" Then
Set TargetRange = Sheets("Sheet2").Cells.Find(Sheets("Sheet1").Cells(I, "B"), _
LookIn:=xlValues, LookAt:=xlWhole)
If Not TargetRange Is Nothing Then
Sheets("Sheet2").Range(TargetRange.Offset(1), TargetRange.Offset(10)).Clear
With Sheets("Sheet1")
.Range(.Cells(I, "B"), .Cells(I, "R")).SpecialCells(xlCellTypeConstants, 23).Copy
End With
With Sheets("Sheet2")
TargetRange.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
End With
End If
End If
Next I
End Sub
ママチャリさん
どうもありがとうございます。
こちらのコードを入力し、試してみます。
又質問がありましたら、サポートお願いします。
No.1
- 回答日時:
こんばんわ。
ママチャリです。rikuitoさんのやりたいことが、やっとわかりました。シート2は座席表とのことですが、いくつかのセルを罫線で囲って、机を表すのでしょうか?
それを前提に質問ですが、張り付ける情報が机の範囲を超えている場合は、どうしますか?他の机の情報を上書きしてしまう可能性がありますが、それでも良いのでしょうか?
例えば、ひとつの机をセル結合で1セルにして、その中に情報を追加していくことも可能かと思います。
また、図形などを使って、机を表しても良いと思います。
まずは、上書きしてしまって良いのか?ダメな場合は、どう回避するのかを検討してみて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お肉の下のシートを煮込んでし...
-
エクセルのシートをコピーして...
-
2つのシート間での重複データ...
-
エクセルで1行だけ数式が反映さ...
-
エクセルを利用して、日計と累...
-
エクセルで2つのシートに同じ名...
-
指定した条件でTRANSPOSE関数を...
-
エクセル表で、複数行おきにセ...
-
チュロス袋の代用
-
複数シートのセルの 記号の数...
-
クッキングシート
-
Excel マクロ使わず関数で2つの...
-
エクセルでシートごとに作成し...
-
既存のエクセルマクロに命令文...
-
マクロ初心者です。 A3縦のフォ...
-
フライパンで魚を焼く時のフラ...
-
Excel VBA 12ヶ月分のシート作成
-
防草シートって効果ありますか?
-
エクセルVBAの処理でブック...
-
EOMONTH関数の代わり
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
お肉の下のシートを煮込んでし...
-
エクセルを利用して、日計と累...
-
指定した条件でTRANSPOSE関数を...
-
チュロス袋の代用
-
エクセルのシートをコピーして...
-
2つのシート間での重複データ...
-
毎日の日計を別シートに自動で...
-
エクセルで○のついた項目を抽出
-
条件にマッチする行を抽出するV...
-
エクセルで1行だけ数式が反映さ...
-
エクセル ○印がついている行を...
-
エクセルで2つのシートに同じ名...
-
EXCELで受験票を作成したい(名...
-
エクセルでフラグがたっている...
-
秘書検定準1級のアドバイスシー...
-
excel シート1の奇数(偶数)...
-
Excelで複数のシートに列のグル...
-
EOMONTH関数の代わり
-
複数シートの列、幅の一括変更方法
-
VBA 縦のデータを横にするコード
おすすめ情報
補足ですみません。
10ますを1席と表しています。
それ以上増える事はございません。
よろしくお願いします。