/ / Перевірте, чи клітина є номером у Excel VBA [дублікат] - excel, vba, excel-vba

Перевірте, чи клітинка є номером у форматі Excel VBA [duplicate] - excel, vba, excel-vba

в наведеному нижче коді я працюю над числовим виконаннямрозрахунки на клітинах. Іноді однак одна з клітин (скажімо, наприклад, "LosLimit") може містити нечисловий знак типу "---". Як перевірити, чи є клітинка числова чи ні.

Якщо це число, то робіть обчислення, ще повертається значення з "MeasValue"

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

Відповіді:

3 для відповіді № 1

Ваша відповідь була в питанні! Існує функція isNumeric (variable_goes_here), яка поверне істинну або хибну інформацію, наприклад

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

поверне правду і дасть вам вікно повідомлення для x = 45 але буде пропускати якщо x = "Not a number"