[[20211127092458]] 『1.2.3入力で日にち、時間を反映』(えり) >>BOT

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『1.2.3入力で日にち、時間を反映』(えり)

 おはようございます。
 以前投稿者の回答を流用したいのですが、
 Private Sub Worksheet_Change(ByVal Target As Range)
     Dim rToProc As Range
     Dim TGT As Range
     Set rToProc = Intersect(Target, Range("F:G,I:J,L:M,O:P,R:S,U:V,X:Y,AA:AB"), Me.UsedRange)
     If rToProc Is Nothing Then
         Exit Sub
     Else
         For Each TGT In rToProc
             RefrectOther TGT
         Next
     End If
 End Sub
 Private Sub RefrectOther(aTGT As Range)
     Dim adrOther As String
     If aTGT.Row >= 7 Then
         adrOther = ""
         Select Case aTGT.Column
             Case 6, 7
                 adrOther = Cells((aTGT.Row - 8) * 3 + 10, aTGT.Column - 2).Address(0, 0)
             Case 9, 10
                 adrOther = Cells((aTGT.Row - 8) * 3 + 10, aTGT.Column - 2).Address(0, 0)
             Case 12, 13
                 adrOther = Cells((aTGT.Row - 8) * 3 + 10, aTGT.Column - 2).Address(0, 0)
             Case 15, 16
                 adrOther = Cells((aTGT.Row - 8) * 3 + 10, aTGT.Column - 2).Address(0, 0)
             Case 18, 19
                 adrOther = Cells((aTGT.Row - 8) * 3 + 10, aTGT.Column - 2).Address(0, 0)
             Case 21, 22
                 adrOther = Cells((aTGT.Row - 8) * 3 + 10, aTGT.Column - 2).Address(0, 0)
             Case 24, 25
                 adrOther = Cells((aTGT.Row - 8) * 3 + 10, aTGT.Column - 2).Address(0, 0)
             Case 27, 28
                 adrOther = Cells((aTGT.Row - 8) * 3 + 10, aTGT.Column - 2).Address(0, 0)
         End Select
         If adrOther <> "" Then
             With Worksheets("Sheet2").Range(adrOther)
                 .Offset(-1).NumberFormat = "m/d"
                 .Offset(-1).Value = aTGT.Value
                 If aTGT.Value = "" Then
                     .ClearContents
                 Else
                     .NumberFormat = "h:mm"
                     .Value = Time
                 End If
                 '中間省略処理
                 If aTGT.Column = 5 Then
                     If aTGT.Offset(, -1).Value = "" And aTGT.Offset(, -3).Value = "" Then
                         If .Value <> "" Then
                             .Offset(-1, -1).NumberFormat = "m/d"
                             .Offset(-1, -1).Value = .Offset(-1, -3).Value
                             .Offset(, -1).NumberFormat = "h:mm"
                             .Offset(, -1).Value = .Offset(, -3).Value
                             .Offset(-1, -2).NumberFormat = "m/d"
                             .Offset(-1, -2).Value = .Offset(-1).Value
                             .Offset(, -2).NumberFormat = "h:mm"
                             .Offset(, -2).Value = .Value
                         Else
                             .Offset(-1, -2).Resize(2, 2).ClearContents
                         End If
                     End If
                 End If
             End With
         End If
     End If
 End Sub

 シート1のF7,G7 I7,J7他に日付入力でシート2のD6に日付D7に時間が表示されます。
 データが多いと画面をスクロールし探すのが大変な為、シート1のE列に製品番号てきな番号、0001,0025,1003
 バラバラです、ですので仮にシート3のC2に番号入力し,D2,E2 G2,H2他に番号行を呼びだし操作したいです、
 VLOOKUP関数で呼び出すような感じ?、マクロはわからないので、何か方法ありますでしょうか。
 よろしくお願いいたします。

< 使用 Excel:Excel2010、使用 OS:Windows10 >


>シート3のC2に番号入力し,D2,E2 G2,H2他に番号行を呼びだし操作したい

呼び出すことは「VLOOKUP関数で呼び出すような感じ?」でできますが、
「操作したい」とは、どんなことを言っているのかわかりません。

呼び出す部分については、流用するよりも作るほうが楽な気がします。

そもそも、「マクロはわからないので」であれば、VLOOKUP関数を
使えばいいのではないでしょうか。

(わからん) 2021/11/27(土) 14:33


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.