ID非公開

2021/9/20 20:14

44回答

エクセルVBAを教えて頂きたいです。 「シート2」タブのA2セルの日付が「シート1」タブのA2セルの日付と一致する、 かつ、

画像

Visual Basic | Excel98閲覧xmlns="http://www.w3.org/2000/svg">500

ベストアンサー

0

その他の回答(3件)

0

lgk********さんのだと、 A11以降が2021/7/11でB11以降が空白だとうまくないのでは? Sub test() Sheets("シート2").Select Sheets("シート1").Range("A1").CurrentRegion.AdvancedFilter _ Action:=xlFilterCopy, CriteriaRange:=Range("A1:B2"), _ CopyToRange:=Range("E1") Range("C2") = WorksheetFunction.Concat(Range("G2", Cells(Rows.Count, "G").End(xlUp))) Range("D2") = WorksheetFunction.Concat(Range("H2", Cells(Rows.Count, "H").End(xlUp))) Columns("E:H").Clear End Sub 区切り文字があったほうがよさそうだが、

画像
0

最新版なら C2: =concat(INDEX(REPT(シート1!C$2:C$15,シート1!$A$2:$A$15&シート1!$B$2:$B$15=$A2&$B2),)) 右へコピペでできます。 場所は2行目だけ、区切り文字無しでいいですね。 Option Explicit ' Sub Macro1()     Dim I As Worksheet     Dim RInp As Long     Dim OutC As String     Dim OutD As String '     Set I = Sheets("シート1")     Sheets("シート2").Select '     For RInp = 2 To I.Cells(Rows.Count, "A").End(xlUp).Row '         If I.Cells(RInp, "A") & I.Cells(RInp, "B") = [A2] & [B2] Then             OutC = OutC & I.Cells(RInp, "C")             OutD = OutD & I.Cells(RInp, "D")         End If     Next RInp     [C2] = OutC     [D2] = OutD End Sub

0

>上記を実現するコードを書きたいのですが、どのように書けば良いのか分かりません。 貴方は逆の事をしてるのをお気づきないのかな? 例えば数学の難問の答えをきいたら解ける様になると思いますか? 書きたいのなら答えをきくのは全く成長の助けにはならないですよ。 難問を制するのはそれまでの積み重ねです。 練習問題や基礎問題を解き続けてそのレベルに達した人だけが解ける様になります。 VBAでいうと合わせてデバッグの学習を済ませないとなかなか書ける様にはならないのをご存知でしょうか? コードを、尋ねてるのは書きたくない方々なのでお間違え無きよう。

コード貰えたね。 でもこれで理解が深まったのは回答者さん、何が違うか判る? 判ってる事を改めて違うケースでやってみる事を繰り返し出来る人だけ理解が進むんです。 貴方が今迄学んだコードは何回アレンジしてみましたか? 数学で新しい概念学ぶ時もそうだと思うけど10回位はシチュエーションを変化させて、試さないと身につかないんだ。 それを厭わずに出来るかどうかが別れ目になります。 そのアレンジ力がひいては創作力に繋がるので書きたいならそこを頑張るといいかと。