Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3 / 13657 ツリー ←次へ | 前へ→

【82431】複数の指定された項目を転記したい 初心者です。 25/1/24(金) 0:31 質問[未読]
【82433】Re:複数の指定された項目を転記したい マナ 25/1/24(金) 8:26 発言[未読]
【82434】Re:複数の指定された項目を転記したい 初心者です。 25/1/24(金) 17:53 回答[未読]
【82436】Re:複数の指定された項目を転記したい マナ 25/1/24(金) 21:36 発言[未読]
【82440】Re:複数の指定された項目を転記したい 初心者です。 25/1/26(日) 10:13 回答[未読]
【82443】Re:複数の指定された項目を転記したい マナ 25/1/26(日) 21:34 発言[未読]
【82444】Re:複数の指定された項目を転記したい マナ 25/1/26(日) 22:24 発言[未読]
【82453】Re:複数の指定された項目を転記したい jindon 25/2/24(月) 13:04 回答[未読]

【82431】複数の指定された項目を転記したい
質問  初心者です。  - 25/1/24(金) 0:31 -

引用なし
パスワード
   はじめまして。

Aのシートにあるデータから、複数の指定した『項目の列』を
2行目からデータラストまで、Bのシートに転記したいのですが、
調べたり、試行錯誤しても列ごと(項目含め)転記しか
成功しません。

Aシート(元データ)
1行目(A列〜AA列):項目   ⇽ 名前、電話、住所、県、市  など項目があります。
2行目以降は項目ごとのデータがある

Bシート(抽出先)
1行目(A列〜Z列):項目 ⇽ 住所、県、電話、県  
2行目以降に、該当する項目のデータを貼り付けたい

2週間ほど、検索をしたり、参考書読んだり、YouTubeみたり
したのですが分からず、仕事も効率よくやりたいのですが進まず困っていました。

どなたなわかる方いらっしゃいましたら、教えていただけないでしょうか。
よろしくお願いします。

【82433】Re:複数の指定された項目を転記したい
発言  マナ  - 25/1/24(金) 8:26 -

引用なし
パスワード
   ▼初心者です。 さん:

>Aシート(元データ)
>1行目(A列〜AA列):項目   ⇽ 名前、電話、住所、県、市 

>Bシート(抽出先)
>1行目(A列〜Z列):項目 ⇽ 住所、県、電話、県  

Bシートの見出しに、県が2つありますが、間違いですか?

【82434】Re:複数の指定された項目を転記したい
回答  初心者です。  - 25/1/24(金) 17:53 -

引用なし
パスワード
   ▼マナ さん:
>▼初心者です。 さん:
>
>>Aシート(元データ)
>>1行目(A列〜AA列):項目   ⇽ 名前、電話、住所、県、市 
>
>>Bシート(抽出先)
>>1行目(A列〜Z列):項目 ⇽ 住所、県、電話、県  
>
>Bシートの見出しに、県が2つありますが、間違いですか?

間違いです。大変失礼致しました。
同じシート内は項目が重複することはないです。

Aのシートの項目は、列番号不規則で抽出されるため、『名前の項目は、B列』と確定して
いないため、指定の項目の列を検索して、項目から下のデータだけBシートへ抽出(コピー)したいです。


説明が下手で申し訳ございません。
お力をお借り出来ればと思います。よろしくお願いします。

【82436】Re:複数の指定された項目を転記したい
発言  マナ  - 25/1/24(金) 21:36 -

引用なし
パスワード
   ▼初心者です。 さん:

>Aのシートの項目は、列番号不規則で抽出されるため、
>『名前の項目は、B列』と確定していない


AシートのデータはA列からで間違いないですか。
転記したい項目がAシートにないこともありえますか。

【82440】Re:複数の指定された項目を転記したい
回答  初心者です。  - 25/1/26(日) 10:13 -

引用なし
パスワード
   ▼マナ さん:
>▼初心者です。 さん:
>
>>Aのシートの項目は、列番号不規則で抽出されるため、
>>『名前の項目は、B列』と確定していない
>
>
>AシートのデータはA列からで間違いないですか。
はい!間違いないです。
ただ、貼り付けのBシートは、B列から項目があり、A列には貼り付けたデータのナンバリングが入ります。

>転記したい項目がAシートにないこともありえますか。
そうなんです。Aシートのデータはシステムから抽出されたもので、ない可能性もあります。
複雑で申し訳ございませんm(_ _)m

【82443】Re:複数の指定された項目を転記したい
発言  マナ  - 25/1/26(日) 21:34 -

引用なし
パスワード
   ▼初心者です。 さん:

>ただ、貼り付けのBシートは、B列から項目があり、
>A列には貼り付けたデータのナンバリングが入ります。

ナンバリングの意味がわかりませんが?


Sub test()
  Dim wsFrom As Worksheet, wsTo As Worksheet
  Dim rngFrom As Range, rngTo As Range
  Dim app As Application
  Dim v, k, m
  Dim n As Long
  
  Set wsFrom = Worksheets("A")
  Set rngFrom = wsFrom.Cells(1).CurrentRegion
  Set rngFrom = Intersect(rngFrom, rngFrom.Offset(1))
  v = rngFrom.Resize(, rngFrom.Columns.Count + 1).Value
  
  Set wsTo = Worksheets("B")
  wsTo.UsedRange.Offset(1).ClearContents
  Set rngTo = wsTo.Cells(1).CurrentRegion
  
  Set app = Application
      
  m = app.XMatch(rngTo.Value, rngFrom.Rows(0))
  m = app.IfError(m, UBound(v, 2))
  n = UBound(v, 1)
  
  v = app.Index(v, app.Sequence(n), m)
 
  Set rngTo = rngTo.Rows(2).Resize(n)
  rngTo.Value = v
  rngTo.Columns(1) = app.Sequence(n)
   
End Sub

【82444】Re:複数の指定された項目を転記したい
発言  マナ  - 25/1/26(日) 22:24 -

引用なし
パスワード
   ▼初心者です。 さん:

コピペを繰り返すほうが、簡単でしたね。

Sub test2()
  Dim wsFrom As Worksheet, wsTo As Worksheet
  Dim rngFrom As Range, rngTo As Range
  Dim c As Range
  Dim m
  
  Set wsFrom = Worksheets("A")
  Set rngFrom = wsFrom.Cells(1).CurrentRegion
  Set rngFrom = Intersect(rngFrom, rngFrom.Offset(1))

  
  Set wsTo = Worksheets("B")
  wsTo.UsedRange.Offset(1).ClearContents
  Set rngTo = wsTo.Cells(1).CurrentRegion
  
  For Each c In rngTo
    m = Application.XMatch(c, rngFrom.Rows(0))
    If IsNumeric(m) Then
      rngFrom.Columns(m).Copy
      c.Offset(1).PasteSpecial xlPasteValues
    End If
  Next
  Application.CutCopyMode = False
  
  rngTo.CurrentRegion.Columns(1).SpecialCells(xlCellTypeBlanks).Value _
    = Application.Sequence(rngFrom.Rows.Count)
   
End Sub

【82453】Re:複数の指定された項目を転記したい
回答  jindon  - 25/2/24(月) 13:04 -

引用なし
パスワード
   ▼初心者です。 さん:
>Aシート(元データ)
>1行目(A列〜AA列):項目   ⇽ 名前、電話、住所、県、市  など項目があります。
>2行目以降は項目ごとのデータがある
>
>Bシート(抽出先)
>1行目(A列〜Z列):項目 ⇽ 住所、県、電話、県  
>2行目以降に、該当する項目のデータを貼り付けたい

AdvancedFilterで一発...

Sub test()
  Sheets("b").[a1].CurrentRegion.Offset(1).Clear
  Sheets("a").[a1].CurrentRegion.AdvancedFilter 2, , _
    Sheets("b").[a1].CurrentRegion
End Sub

3 / 13657 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free