2016-11-08 2 views
-1

私はVBAの初心者であり、Excelスプレッドシート内で繰り返しタスクを「自動化」しようとしています。異なる列のアウトラインレベルに基づいて列をインデントしようとしています。私は同様のタスクからコードを適用しようとしてきましたが、壁にぶつかりました。基本的に私が達成しようとしているのは、マクロにOutLvl列を読み込み、アウトラインレベルに基づいて次の列をインデントすることです。以下はこのマクロのスクリーンショットです。黄色で強調表示されているのは、ハングアップした場所です。私がアプリケーションを習得しようとしているので、意見やフィードバックは高く評価されます。ありがとう! Indent Macro AttemptExcelで列をインデントする

+2

あなたのコードは、スクリーンショットではなく、あなたのコードを投稿してください:-) – Niclas

答えて

0

ここでは、反復処理を行う範囲を適切に初期化していないようです。 Rangeオブジェクトは、実際にはセルそのものを参照できるという点で難しいです。ここでの配列の使用法は不必要で、混乱さえあります。

Dim OutLvl as Range ' This will refer to the whole range of interest 
Dim t as Range  ' Always good practice to declare all variables 
... ' Fill in the code as you have written 
Set OutLvl = Range("A1:A20") ' Now OutLvl refers to A1:A20 on the active sheet. 
    'Note that I can't possibly know how to appropriately set this range. 

For Each t in OutLvl 
    ... ' Now perform the loop as you have written 
Next t 

その他のエラーが表示されます。注:私はこれを見ていないので、その正確さについては言えません: https://www.youtube.com/watch?v=kWT2YfSHpfM

関連する問題