Sub CleanData()
Dim MessageAnswer As VbMsgBoxResult
Dim EachRange As Range
Dim TempArray As Variant
Dim col As Long
Dim rng As Range
Dim ws As Worksheet
uSheet = InputBox("Define the sheet name")
Set ws = Worksheets(uSheet) 'Define the sheet name
uRange = InputBox("Define the range")
Set rng = Range(uRange)
For Each EachRange In rng.Areas
TempArray = EachRange.Value2
If IsArray(TempArray) Then
For rw = LBound(TempArray, 1) To UBound(TempArray, 1)
For col = LBound(TempArray, 2) To UBound(TempArray, 2)
If Len(TempArray(rw, col) < 1) Then
ElseIf IsNumeric(TempArray(rw, col)) Then
TempArray(rw, col) = CDbl(TempArray(rw, col))
ElseIf Format(TempArray(rw, col) = "//") Then
Else
TempArray(rw, col) = uRange.Trim(TempArray(rw, col))
End If
Next col
Next rw
Else
End If
EachRange.Value2 = TempArray
Next EachRange
'Code Ran Succesfully!
MsgBox "Your data cleanse was successful!", vbInformation, "All Done!"
End Sub
Я не уверен, как связать это с пользовательским вводом. все остальное работает нормально. Причина, по которой я это делаю, заключается в том, чтобы связать этот VBA с командной кнопкой на другом листе. Указанный пользователем диапазон работает нормально, но я не могу понять, как включить лист в код.