ホームページ  >  記事  >  ソフトウェアチュートリアル  >  Excel VBA コード: 子行を親行に結合すると、結果は親行 1 とその子になります。

Excel VBA コード: 子行を親行に結合すると、結果は親行 1 とその子になります。

WBOY
WBOY転載
2024-01-20 08:15:05997ブラウズ

一段excel vba代码用于将子表行合并到父表结果:父行1若干

Excel VBA コードの一部を使用して、子テーブルの行を親テーブルにマージします。結果は次のようになります: 複数の親行 1

最初の行がタイトル行であると仮定して、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

"ワークシート数の統計" then

yn = MsgBox ("[ワークシート数量統計] ワークシートが存在しません。[ワークシート数量統計] を作成しますか?", vbYesNo, "[ワークシート数量統計] ワークシートを作成します")

If 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 次元配列です

Sheet1.Activate 'sheet1 を現在アクティブなシートにします

[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 サイトの他の関連記事を参照してください。

声明:
この記事はdocexcel.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。