最初の行がタイトル行であると仮定して、2 行目から始めます
サブマージ()
Endcol1 = Sheet1.[iv1].End(xlToLeft).Column
endrow1 = Sheet1.Range("B65536").End(xlUp).Row
endcol2 = Sheet2.[iv1].End(xlToLeft).Column
endrow2 = Sheet2.Range("B65536").End(xlUp).Row
Aを範囲として暗くする
Dim BiaoYiID を範囲として使用する
Dim BiaoErID を範囲として指定
MyRange1 を範囲として暗くする
Dim BiaoErH を範囲として使用する
ディム・レイジ・アズ・ロング
Sheet2.Activate
Set BiaoErID = Sheet2.Range(Cells(2, 2), Cells(endrow2, 2))
For i = 2 To endrow1
sxh = 私は嘘をつきます
lieji1 = 0
ビアオエルネイロン = Sheet1.Range("B" & sxh).Text
Set A = BiaoErID.Find(biaoerneirong, after:=BiaoErID.Cells(BiaoErID.Cells.Count), lookat:=xlWhole)
A ではない場合は何もありません
biaoertopaddress = A.アドレス
###する###sxh1 = sxh lieji1
BIAORADDRESS = A.Address(RowAbsolute:=False, ColumnAbsolute:=False)
biaoyiaddress = Sheet1.Range("B" & sxh1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
Sheet1.Select
Sheet1.Range(biaoyiaddress).Offset(1).Activate
ActiveCell.EntireRow.Insert
リージ = リージ 1
lieji1 = lieji1 1
For ii = 0 to endcol2
ActiveCell.Offset(0, ii) = Sheet2.Range(BIAORADDRESS).Offset(0, ii)
###次###Set A = BiaoErID.FindNext(A)
A が何もない場合と A.Address
biaoertopaddressの間ループします。
終了の場合###次### エンドサブ
ワークブック内のワークシートの数を数える VBA コードの記述方法
サブワークシート番号統計 ()
If Sheets(1).Name
"ワークシート数の統計" thenIf yn = vbYes then
Sheets.Add(Sheets(1)).Name = "ワークシート数の統計"
###終わり###終了の場合
終了の場合
Sheets (「ワークシート数の統計」).Select
範囲("A1").選択
Cells(1, 1).Value = "ワークシートの数は"
Cells(1, 2).Value = Sheets.Count
エンドサブ
Worksheet Statistics という名前のワークシートが作成され、ワークシートの数が最初の行に表示されます
次の Excel VBA コードについて専門家にコメントを書いてください。できるだけ詳細にコメントを書いてください。ありがとうございます
Public m& 'パブリック変数 m
を定義しますSub lqxs()
Dim Arr, i&, Brr(1 To 27, 1 To 23), rq, nl '上記の変数を定義します。Brr は 27 行 23 列の 2 次元配列です
[c5:z32].ClearContents 'セル C5 ~ Z32 のデータをクリアします
Myr = Sheet2.[a65536].End(xlUp).row 'Sheet2 の A 列のデータが含まれる領域の行数を Myr 変数に代入します。
Arr = Sheet2.Range("a7:t" & Myr) '列 A7 から列 T までの範囲と行 Myr に Arrという名前を付けます
For i = 1 To UBound(Arr) 'ループrq = DateSerial(Left(Arr(i, 7), 4), Mid(Arr(i, 7), 5, 2), Right(Arr(i, 7), 2)) 'Sheet2 の G を変更します列のデータは、2013/12/12
のような日付形式に変わります。
nl = DateDiff("yyyy", rq, Now) 'Sheet2のG列のデータ日付の年が今年と同じかどうかを判定します。同じ場合は0を返します。同じでない場合は 1 が返されます。Call jd(Arr(i, 13)) 'jd() 関数を呼び出す
Brr(1, nl 1) = Brr(1, nl 1) 1 '配列 Brr(1, nl 1) の値に 1 を加算します。
Brr(m, nl 1) = Brr(m, nl 1) 1 '配列 Brr(1, nl 1) の値に 1 を加算します。 ###次###[d5].Resize(27, 23) = Brr 'まず配列の値をセル D5 に代入し、以下の 26 行目の右側の 22 列目に移動します
[c5].Formula = "=sum(rc[1]:rc[23])" 'セル C5 に数式を追加します、C5=D5 E5 F5 AB5
[c5].AutoFill [c5].Resize(27, 1) '書式記入 C5の書式をセルC31に記入します
[d6].Formula = "=sum(r[1]c:r[4]c)" 'セル D6 に数式を追加します、D6=D7 D8 D9 D10
[d6].AutoFill [d6].Resize(1, 23) '書式記入、D6 の書式をセル AB31 に記入します
エンドサブ
以上がExcel VBA コード: 子行を親行に結合すると、結果は親行 1 とその子になります。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。