Excel VBA質問箱 IV

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

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


91 / 13620 ツリー ←次へ | 前へ→

【81891】Sheet1からSheet 2に日付を条件として数値を貼りつけたい えん 22/1/7(金) 16:37 質問[未読]
【81892】Re:Sheet1からSheet 2に日付を条件として数... マナ 22/1/7(金) 20:33 発言[未読]
【81893】Re:Sheet1からSheet 2に日付を条件として数... マナ 22/1/7(金) 22:28 発言[未読]
【81894】Re:Sheet1からSheet 2に日付を条件として数... えん 22/1/8(土) 8:09 回答[未読]
【81895】Re:Sheet1からSheet 2に日付を条件として数... マナ 22/1/8(土) 9:14 発言[未読]
【81896】Re:Sheet1からSheet 2に日付を条件として数... えん 22/1/8(土) 9:52 回答[未読]
【81897】Re:Sheet1からSheet 2に日付を条件として数... マナ 22/1/8(土) 10:03 発言[未読]
【81898】Re:Sheet1からSheet 2に日付を条件として数... えん 22/1/8(土) 12:02 回答[未読]
【81899】Re:Sheet1からSheet 2に日付を条件として数... マナ 22/1/8(土) 12:13 発言[未読]
【81900】Re:Sheet1からSheet 2に日付を条件として数... えん 22/1/8(土) 13:46 回答[未読]
【81901】Re:Sheet1からSheet 2に日付を条件として数... えん 22/1/8(土) 13:52 回答[未読]
【81902】Re:Sheet1からSheet 2に日付を条件として数... マナ 22/1/8(土) 14:17 発言[未読]
【81903】Re:Sheet1からSheet 2に日付を条件として数... えん 22/1/8(土) 14:22 お礼[未読]

【81891】Sheet1からSheet 2に日付を条件として数...
質問  えん  - 22/1/7(金) 16:37 -

引用なし
パスワード
   Sheet1(Blank)のB列に日付が入力されており。その横のC〜AA列までその日の数値が入力されます。
Sheet2(BIO)の1行目に一年分の日付が入力されているのですが、そこの日付と同じSheet1(Blank)の日付の行の数値を転記するようにしたいです。
Sheet2はSheet1の日付と項目欄を縦横逆にしただけです。
イメージ的には各シートは以下のようになっています。

Sheet1(Blank)
     B列  C列  D列・・・AA列
1行目  日付 温度  温度   電流
2行目  1/1  20   33    5
3行目  1/8  30   20    6

Sheet2(BIO)
     A列  B列  C列 ・・・NB列
1行目  日付  1/1  1/2 ・・・12/31    
2行目  温度  20   30     
3行目  温度  1/8   30     
4行目  電流  5    6

VBAで作動できるようにできますと、非常に助かります。
よろしくお願い致します。

【81892】Re:Sheet1からSheet 2に日付を条件として...
発言  マナ  - 22/1/7(金) 20:33 -

引用なし
パスワード
   ▼えん さん:

Option Explicit

Sub test()
  Dim r1 As Range, r2 As Range
  Dim gyo, retu

  Set r1 = Worksheets("Sheet1").Cells(2).CurrentRegion
  Set r2 = Worksheets("Sheet2").Cells(1).CurrentRegion
  Set r2 = r2.Offset(1).Resize(r1.Columns.Count - 1)
  
  gyo = Evaluate("row(2:" & r1.Columns.Count & ")")
  retu = Application.Match(r2.Rows(0), r1.Columns(1), 0)

  r2.Value = Application.Index(Application.Transpose(r1), gyo, retu)
  On Error Resume Next
  r2.SpecialCells(xlCellTypeConstants, xlErrors).ClearContents

End Sub

【81893】Re:Sheet1からSheet 2に日付を条件として...
発言  マナ  - 22/1/7(金) 22:28 -

引用なし
パスワード
   ▼えん さん:
Sub test2()
  Dim r1 As Range, r2 As Range
  Dim r As Range, m as Long

  Set r1 = Worksheets("Sheet1").Cells(2).CurrentRegion
  Set r2 = Worksheets("Sheet2").Cells(1).CurrentRegion
  
  For Each r In r1.Rows
    m = Application.Match(r.Cells(1), r2.Rows(1), 0)
    r.Copy
    r2.Cells(1, m).PasteSpecial xlPasteValues, Transpose:=True
  Next
  Application.CutCopyMode = False

End Sub

【81894】Re:Sheet1からSheet 2に日付を条件として...
回答  えん  - 22/1/8(土) 8:09 -

引用なし
パスワード
   マナさん
ありがとうございます。

test1の方はSheet2のA列が2行目から下が消えてしまい、数値の入力はされてませんでした。
test2の方は型が一致しませんというエラーメッセージが表示されました。

VBA初心者で申し訳ないのですが、よろしくお願い致します。

【81895】Re:Sheet1からSheet 2に日付を条件として...
発言  マナ  - 22/1/8(土) 9:14 -

引用なし
パスワード
   ▼えん さん:

Sheet1のA列はすべて空白でしょうか

【81896】Re:Sheet1からSheet 2に日付を条件として...
回答  えん  - 22/1/8(土) 9:52 -

引用なし
パスワード
   ▼マナ さん:
いえ、sheetのタイトル名や説明書き、マクロボタンを設置しようと思っています。

【81897】Re:Sheet1からSheet 2に日付を条件として...
発言  マナ  - 22/1/8(土) 10:03 -

引用なし
パスワード
   ▼えん さん:

Set r1 = Worksheets("Sheet1").Cells(2).CurrentRegion
    ↓
Set r1 = Cells(1).CurrentRegion
Set r1 = Intersect(r1, r1.Offset(, 1))

【81898】Re:Sheet1からSheet 2に日付を条件として...
回答  えん  - 22/1/8(土) 12:02 -

引用なし
パスワード
   ▼マナ さん:
test()とtest2の両方

>Set r1 = Worksheets("Sheet1").Cells(2).CurrentRegion
>    ↓
>Set r1 = Cells(1).CurrentRegion
>Set r1 = Intersect(r1, r1.Offset(, 1))

に差し替えて試したのですが、まずtestの方はA列の2行目から下が空白になり、B列2行目からシリアル値(おそらく一年分)が入力されました。
つぎにtest2の方は

実行時エラー'1004'
「この選択は適切ではありません。コピー領域と貼り付け領域が同じサイズかつ同じ形状ではない場合は、それらの領域が重ならないようにしてください。

というエラーメッセージがでました。

【81899】Re:Sheet1からSheet 2に日付を条件として...
発言  マナ  - 22/1/8(土) 12:13 -

引用なし
パスワード
   ▼えん さん:

Sheet1に、

>マクロボタンを設置

つまり、Sheet1が、アクティブな状態で実行する前提のマクロです。

【81900】Re:Sheet1からSheet 2に日付を条件として...
回答  えん  - 22/1/8(土) 13:46 -

引用なし
パスワード
   ▼マナ さん:
Sheet1にマクロボタンを設置して作動させたのですが、testの方はA列2行目移行が空白に、B列2行目移行は今回は空欄でした。
test2の方は「型が一致しません」というエラーメッセージがでました。

Excel初心者のため、お手を煩わせてしまい申し訳ございません、、、

【81901】Re:Sheet1からSheet 2に日付を条件として...
回答  えん  - 22/1/8(土) 13:52 -

引用なし
パスワード
   Sheet1の日付欄が時刻付きとなっていた為、日付のみに変更した所、testの方は数値が飛びました。しかし、Sheet2のA列2行目以降が空白に置き換わってしまうのは変わらずです。

私のミスで、錯綜させてしまい申し訳ございません

【81902】Re:Sheet1からSheet 2に日付を条件として...
発言  マナ  - 22/1/8(土) 14:17 -

引用なし
パスワード
   ▼えん さん:
>Sheet2のA列2行目以降が空白に置き換わってしまうのは変わらずです。

Sheet1のB1とSheet2のA1は、
どちらも「日付」という文字で間違いありませんか

【81903】Re:Sheet1からSheet 2に日付を条件として...
お礼  えん  - 22/1/8(土) 14:22 -

引用なし
パスワード
   ▼マナ さん:
Sheet1のB1がSharePointリストとの接続で作成していたテーブルデータだったため、"OData_日付"となっていました。
これを日付に変更したら、問題なくできました。

本当にありがとうございました。

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