2012-03-09 11 views
0

私は価格表を作ることができるようにいくつかのデータをフォーマットする小さなマクロを動こうとしています。情報をExcelに置くとうまくいきますが、ノートのいくつかが次の行に表示されます。これは、セルの内容を取り、その上にセルを追加することになっています。私の型の不一致エラーを与えるセルに数式値を追加するにはどうすればよいですか?

=- 4-7 

(これは実際に式ではない、それはちょうど1のように見える) :

Sub Macro1() 
    For i = 8 To 100000 
     If Left(ActiveSheet.Cells(i + 1, 1).Value, 2) = "AC" Or ActiveSheet.Cells(i + 1, 1).Value = vbNullString Then 
     Else 
      If Left(ActiveSheet.Cells(i + 1, 1).Value, 4) = "Page" Then 
       ActiveSheet.Rows(i + 1).Delete shift:=xlUp 
      Else 
       Dim tempString As Variant 
       tempString = ActiveSheet.Cells(i + 1, 1).Value 
       ActiveSheet.Cells(i, 1).Value = ActiveSheet.Cells(i, 1).Value + " " + tempString 
       ActiveSheet.Rows(i + 1).Delete shift:=xlUp 
       i = i - 1 
      End If 
     End If 
    Next 
End Sub 

私は、セルの値に実行するまで、それだけで正常に動作します。セルの内容を指定する別の方法を使用する必要がありますか?また、範囲を指定するより良い方法があるかもしれませんが、実際にはA列の下に行きたいと思います。

+2

エラーを再現できませんか?あなたはどこかでサンプルを投稿できますか?私が作るMods:1)私はコードの開始時にオートフィルタで "Page"セルを削除します2)ハードコード100000ではなく最後のセルから見上げている列Aの範囲を設定します3)あなたは 'i = i-1'の修正を取り除くことができます – brettdj

+1

+1)3つの良い点!私もそれをお勧めします。ここでは4番目の点です:Excelで文字列を連結するときに "+"の代わりに "&"を使用してください –

+0

ありがとうございました!これは大きな助けとなり、私はサブがうまくいっていると言ってうれしいです! – Riet

答えて

0

ただ、これは、それが一定の、またはExcelが、それは必要に応じて、あることを考えて、「式」の文字列定数の文字列を返します代わりに.Value

.Formulaを使用しています。

関連する問題