2017-06-16 19 views
1

Excelのシートには多数のヘッダーがありますが、一部にはダッシュがありません。 合計を除いて、それらのすべてにダッシュを付ける必要があります。Excel VBAセルを式の答えに置き換えます。

例: Column Headers

私はヘッダにダッシュを追加する数式を書いた:

=IF(A1="","",IF(A1="TOTAL","TOTAL",REPLACE(SUBSTITUTE(A1,"-",""), 1, 0, "-"))) 

はしかし、問題は、私はVBAマクロでこれを必要とするということであり、それ既存のヘッダーを同じ書式設定に置き換える必要があります。

私はこれは私がこれまでに得たもので、これを書きするかどうかはわかりません。

Sub AddDash() 
Dim MaxColumn As String 
MaxColumn = Range("AY1").End(xlToLeft) 
For i = 1 To TotalRows 
Formula = "=IF(A1="","",IF(A1="TOTAL","TOTAL",REPLACE(SUBSTITUTE(A1,"-",""), 1, 0, "-")))" 
Next i 
End Sub 

を行うことが、このことは可能ですか?

私は似た何かを見てきましたが、私はそれが

With Sheet1 
    With Range(.Cells(3,3), .Cells(.Rows.Count,3).End(xlup)) 
     With .Offset(0, Sheet1.UsedRange.Columns.Count +3) 
      .FormulaR1C1 = "=REPLACE(REPLACE(SUBSTITUTE(RC3,""-"",""""), 9, 0, ""-""), 7, 0, ""-"")" 
     End With 
     .Value = .Offset(0, Sheet1.UsedRange.Columns.Count +3).Value 
     .Offset(0, Sheet1.UsedRange.Columns.Count +3).EntireRow.Delete 
    End With 
End With 

私の状況のた​​めに動作させるために十分にそれを理解していないが助けてくれてありがとう!

+0

わからない私は、あなたに従ってください。セルに数式を入力すると、セルの内容が上書きされます。セルにテキストを挿入すると、式が上書きされます。テキストを編集するための数式がどのように機能するかわかりません。 – FreeMan

答えて

1

これはあなたの試みですか?コードにコメントしましたが、まだ質問がある場合はお気軽にお問い合わせください。

Sub AddDash() 
    Dim ws As Worksheet 
    Dim lCol As Long, i As Long 

    '~~> Change this to the relevant sheet 
    Set ws = Sheet1 

    With ws 
     '~~> Find the last column in row 1 
     lCol = .Cells(1, .Columns.Count).End(xlToLeft).Column 

     '~~> Loop through the columns in row 1 
     For i = 1 To lCol 
      '~~> Check 1 : Cell is not empty 
      '~~> Check 2 : Cell doesn't have TOTAL 
      '~~> Check 3 : Cell Doesn't already have a Dash 
      If Len(Trim(.Cells(1, i).Value)) <> 0 And _ 
       UCase(Trim(.Cells(1, i).Value)) <> "TOTAL" And _ 
       Left(Trim(.Cells(1, i).Value), 1) <> "-" Then 
       '~~> Add Dash 
       .Cells(1, i).Value = "-" & .Cells(1, i).Value 
      End If 
     Next i 
    End With 
End Sub 

スクリーンショット

enter image description here

+0

おい、うわー!これはとてもうまく書かれています。私はそれを完全に間違っていた、笑。私は愚かだと感じる。あなたのコードはとてもきれいで、私はあなたのように書く方法を学ばなければならない。美しい。お手伝いありがとう。 –

+0

喜んで助けになる:) –

関連する問題