1
私はVBAに非常に錆びているので、これはVBAに精通している人にとっては簡単な修正になると期待しています。私はIFERROR関数にエラーが発生した場合に0、 ""、またはn/aを返すように、以下の式を修正したいと思います。現在、私がオンラインで見つけたコードは完璧ですが、n/aを返しません。誰かがすぐにどのようにコードのブロックを追加する方法を知っている場合は、3番目のオプションは、それを感謝するサイクルを許可します。コードがあるからwww.TheSpreadsheetGuru.com答えは、次のコードブロックにEnd_Stringの値を変更することにあるVBAラップIFERROR変更
Sub WrapIfError_v2()
'PURPOSE: Add an IFERROR() Function around all the selected cells' formulas. _
Also handles if IFERROR is already wrapped around formula.
'SOURCE: www.TheSpreadsheetGuru.com
Dim rng As Range
Dim cell As Range
Dim AlreadyIFERROR As Boolean
Dim RemoveIFERROR As Boolean
Dim TestEnd1 As String
Dim TestEnd2 As String
Dim TestEnd3 As String
Dim TestStart As String
Dim MyFormula As String
Dim x As String
'Determine if a single cell or range is selected
If Selection.Cells.Count = 1 Then
Set rng = Selection
If Not rng.HasFormula Then GoTo NoFormulas
Else
'Get Range of Cells that Only Contain Formulas
On Error GoTo NoFormulas
Set rng = Selection.SpecialCells(xlCellTypeFormulas)
On Error GoTo 0
End If
'Get formula from First cell in Selected Range
MyFormula = rng(1, 1).Formula
'Create Test Strings To Determine if IFERROR formula has already been added
TestEnd1 = Chr(34) & Chr(34) & ")"
TestEnd2 = ",0)"
TestStart = Left(MyFormula, 9)
'Determine How we want to modify formula
If Right(MyFormula, 3) = TestEnd1 And TestStart = "=IFERROR(" Then
Beg_String = ""
End_String = "0)" '=IFERROR([formula],0)
AlreadyIFERROR = True
ElseIf Right(MyFormula, 3) = ",0)" And TestStart = "=IFERROR(" Then
RemoveIFERROR = True
Else
Beg_String = "=IFERROR("
End_String = "," & Chr(34) & Chr(34) & ")" '=IFERROR([formula],"")
AlreadyIFERROR = False
End If
'Loop Through Each Cell in Range and modify formula
For Each cell In rng.Cells
x = cell.Formula
If RemoveIFERROR = True Then
cell = "=" & Mid(x, 10, Len(x) - 12)
ElseIf AlreadyIFERROR = False Then
cell = Beg_String & Right(x, Len(x) - 1) & End_String
Else
cell = Left(x, Len(x) - 3) & End_String
End If
Next cell
Exit Sub
'Error Handler
NoFormulas:
MsgBox "There were no formulas found in your selection!"
End Sub
あなたが何をしているのかわからない - 該当しない***は***エラーです。 – Comintern
N/Aは文字列 "N/A"のようにエラーではありません... – PacMan