0

Web サイトの構造を含むワークシートを取得し、(列 1) ページの名前と (列 2) サイトのセクションを含む 2 つの列をワークシートに出力するモジュールを VBA で記述しようとしています。 (Visio で利用できるように)

私の既存のワークシートには、次のような構造が含まれています。

Root / Section / Sub-section / Page
Root / Section / Page
Root / Section / Sub-section / Sub-section / Page

つまり、各行は左側の列にページの祖先を示していますが、構造にはさまざまなレベルがあり、問題が複雑になっています。

これをループして、列 7 (ナビゲーションの最も深いレベル) から開始し、最初に左にループして空でないセルを見つけ、そのセルとその親を新しいシートにコピーします。列2に到達したら、ルートが含まれているため、下に移動します。これは 562 の最後の行まで続きます。

私のコードは以下のとおりですが、「While Isempty」行でエラーが発生しています。私は何を間違えましたか?

Sub directDescendent()

Dim readCol As Integer
Dim readRow As Integer
Dim writeRow As Integer
readCol = 7
readRow = 2
writeRow = 2

While readRow < 562
    While IsEmpty(ActiveWorkbook.Sheets(2).Cells(readRow, readCol).Value)
        readCol = readCol - 1
    Wend
    If readCol < 3 Then
        readCol = 7
        readRow = readRow + 1
    End If
    ActiveWorkbook.Sheets(3).Cells(writeRow, 1).Value =     ActiveWorkbook.Sheets(2).Cells(readRow, readCol).Value
    ActiveWorkbook.Sheets(3).Cells(writeRow, 2).Value = ActiveWorkbook.Sheets(2).Cells(readRow, readCol - 1).Value
    writeRow = writeRow + 1

Wend
End Sub
4

2 に答える 2

3

コードが7回目に入ると、readCol変数の値は0(ゼロ)になるWhile IsEmpty(ActiveWo...ため(最小値は1である必要があります)、インデックスが範囲外であるため例外がスローされます(要素を持つものの0番目の要素を要求します1 to n

于 2013-05-24T12:16:24.853 に答える