2016-05-02 3 views
1

私はゼロにしようとしているいくつかのワークシートに見出しを付けたデータ(数値)をたくさん持っています。これは、次のように各列で実行されます。列の最初の行の値を取得し、列のすべての行からこの値を減算します。次のエラーなしFor?

Dim ws As Worksheet 
Dim Header As Range, ColData As Range 
Dim firstrow As Long 
Dim cell As Range, cell2 As Range 

Set ws = ActiveSheet 
Set Header = ws.Range("B5").End(xlToRight) 

For Each cell In Header 
    If IsEmpty(cell) Then 
    Else 
     firstrow = cell.Offset(2).Value 
     If Not IsEmpty(cell.Offset(2)) Then 
      Set ColData = ws.Range(cell.Offset(2), cell.Offset(2).End(xlDown)) 
      For Each cell2 In ColData 
       cell2.Value = cell2.Value - firstrow 
      Next cell2 
Next cell 

は私がのためにすることなく、次のエラーを取得しています(:)ので、VBAに最善の方法をではないかもしれないが、イム新しい)

私は一緒にこのコードを入れていますか?何か不足していますか?何か愚かな私は何度もチェックして、それを見つけることができないようだと私を許して!

ありがとうございます!

編集:IsEmpty関数が修正されましたが、正常に出力されませんでしたが、私はそれに取り組んでいます!

+3

「End If」が2つありません –

+0

下のコメントに記載されているように修正されましたが、まだエラーが発生しています! –

+0

ありがとうございます。あなたのコーディングに幸運を祈る。 –

答えて

1

あなたの質問へのコメントに記載されているように、2つのEnd Ifステートメントがありません。

IF _condition_ Thenステートメントを開始するたびに、すぐにEnterキーを2回押して、End If行を入力します。コードを入力すると、このような問題を回避する簡単な方法があります。その後、1行上に進み、IF文の中に入るものを入力します。

同じテクニックは、キーワード、角かっこ({} []())、またはコメント記号/* [...] */のように、開始および終了マーカー(For/Nextなど)を持つすべての言語およびステートメントに適用できます。

+0

私の編集したコードを見て、まだエラーが表示されます。エラーは、実行時エラー438、オブジェクトdoesntサポートこのプロパティまたはメソッド:( –

+0

@MofasaEここで別の質問をするのではなく、新しい質問を開始してください。 –

関連する問題