2016-11-16 6 views
2

vbaコードに問題があります。なぜか分からないけど、式の前で等号を取り除いて...誰でもそれを修正する方法を知っているのだろうか?ここでExcel VBAは式から等号を削除します

enter image description here

Excelシートの完全なソースコードです:

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim c As Range 
    For Each c In Target.Cells 
     If Not Intersect(c, Range("X:AI")) Is Nothing Then 
      If c > Range("H" & c.Row).Value Or c < Range("G" & c.Row).Value Then 
       c.Font.ColorIndex = 3 
      ElseIf c <= Range("H" & c.Row).Value And c >= Range("G" & c.Row).Value Then 
       c.Font.ColorIndex = 10 
      End If 


      Dim frml1 As String 
      Dim frml2 As String 
      frml1 = "LARGE(X" & c.Row & ":AI" & c.Row & ";1)" 
      frml2 = "SMALL(X" & c.Row & ":AI" & c.Row & ";1)" 
      Range("AK" & c.Row).Value = "=AVERAGE(X" & c.Row & ":AI" & c.Row & ")" 
      Range("AJ" & c.Row).Value = "=" & frml1 & " - " & frml2 
     ElseIf Not Intersect(c, Range("AL:AM")) Is Nothing Then 
      If c > Range("K" & c.Row).Value Or c < Range("J" & c.Row).Value Then 
       c.Font.ColorIndex = 3 
      ElseIf c <= Range("K" & c.Row).Value And c >= Range("J" & c.Row).Value Then 
       c.Font.ColorIndex = 10 
      End If 
     ... 
     ElseIf Not Intersect(c, Range("AU:AU")) Is Nothing Then 
      If c > Range("Q" & c.Row).Value Or c < Range("P" & c.Row).Value Then 
       c.Font.ColorIndex = 3 
      ElseIf c <= Range("Q" & c.Row).Value And c >= Range("P" & c.Row).Value Then 
       c.Font.ColorIndex = 10 
      End If 
     ElseIf Not Intersect(c, Range("AY:AY")) Is Nothing Then 
      If c > Range("T" & c.Row).Value Or c < Range("S" & c.Row).Value Then 
       c.Font.ColorIndex = 3 
      ElseIf c <= Range("T" & c.Row).Value And c >= Range("S" & c.Row).Value Then 
       c.Font.ColorIndex = 10 
      End If 
     End If 
    Next c 
End Sub 

答えて

3

あなたが持っています ";"あなたの式ではなく、 "、"。おそらくあなたの数式がそれを取り除くことに誤りがあるからです。

+0

"、" or ";"地域設定の設定です。基本的にそれはあなたの言語に依存します – Andreas

+0

Excelの区切り文字は言語に依存します...たとえば、デンマーク語のLPをExcelで使用する場合、セミコロンで区切る必要があります。桁区切りにカンマが使用されています。 。 –

+0

新しいのが何か新しいことを! – ClintB

1

Excelで次のようにコーディングしている場合、次の点に注意することは良いアイデアです:

?application.PathSeparator 
?application.DecimalSeparator 
?Application.International(xlFormula) 

は、あなたの結果を確認するために、VBエディタのイミディエイトウィンドウでそれらを書きます。次に、VBAコードでこれらを使用するとドイツと米国の両方で使用できます。

関連する問題