/ / Prüfen Sie, ob die Zelle eine Zahl in Excel VBA ist [Duplikat] - Excel, VBA, Excel-Vba

Überprüfen Sie, ob die Zelle eine Zahl in Excel ist VBA [duplizieren] - Excel, VBA, Excel-VBA

Im folgenden Code arbeite ich daran, numerisch zu arbeitenBerechnungen an Zellen. Manchmal kann jedoch eine der Zellen (beispielsweise "LosLimit") einen nicht numerischen Wert wie "---" enthalten. Wie überprüfe ich, ob die Zelle numerisch ist oder nicht?

Wenn es sich um eine Zahl handelt, führen Sie die Berechnung durch, andernfalls geben Sie den Wert von "MeasValue" zurück.

Sub ReturnMarginal()

"UpdatebySUPERtoolsforExcel2016
Dim xOut As Worksheet
Dim xWb As Workbook
Dim xWks As Worksheet
Dim InterSectRange As Range
Dim lowLimCol As Integer
Dim hiLimCol As Integer
Dim measCol As Integer

Application.ScreenUpdating = False
Set xWb = ActiveWorkbook
For Each xWks In xWb.Sheets
xRow = 1
With xWks
FindString = "LowLimit"
If Not xWks.Rows(1).Find(FindString) Is Nothing Then
.Cells(xRow, 16) = "Meas-LO"
.Cells(xRow, 17) = "Meas-Hi"
.Cells(xRow, 18) = "Min Value"
.Cells(xRow, 19) = "Marginal"
LastRow = .UsedRange.Rows.Count
lowLimCol = Application.WorksheetFunction.Match("LowLimit", xWks.Range("1:1"), 0)
hiLimCol = Application.WorksheetFunction.Match("HighLimit", xWks.Range("1:1"), 0)
measLimCol = Application.WorksheetFunction.Match("MeasValue", xWks.Range("1:1"), 0)
.Range("P2:P" & lastRow).Formula = "=IF(ISNUMBER(" & .Cells(2, lowLimCol).Value2 & ")," & Cells(2, measLimCol).Address(False, False) & "-" & Cells(2, lowLimCol).Address(False, False) & "," & Cells(2, measLimCol).Address(False, False) & ")"


.Range("Q2:Q" & LastRow).Formula = "=" & Cells(2, hiLimCol).Address(False, False) & "-" & Cells(2, measLimCol).Address(False, False)

.Range("R2").Formula = "=min(P2,Q2)"
.Range("R2").AutoFill Destination:=.Range("R2:R" & LastRow)

.Range("S2").Formula = "=IF(AND(R2>=-3, R2<=3), ""Marginal"", R2)"
.Range("S2").AutoFill Destination:=.Range("S2:S" & LastRow)

End If

End With
Application.ScreenUpdating = True "turn it back on
Next xWks

End Sub

Antworten:

3 für die Antwort № 1

Ihre Antwort war in der Frage! Es gibt eine Funktion isNumeric (variable_goes_here), die ein wahres oder falsches Ergebnis zurückgibt, z.

if isNumeric(x) then msgbox("Woop!")

wird ein wahr zurückgeben und Ihnen das Meldungsfeld für x = 45 überspringt aber wenn x = "Not a number"