Я работаю над задачей, когда пользователи вводят сначала столбец от «А» до «Z», а затем номер строки от 1 до 20. Мне нужно написать function getIntData (col as String, row as Integer) как Integer, который возвращает содержимое этой ячейки на активном листе и показывает его в окне сообщения. Если число - это максимальное отрицательное целое число, то вместо него появляется окно с восклицательным знаком. Функция getIntData возвращает значение Integer. Если содержимое ячейки не является числовым, верните максимально возможное отрицательное значение (-2^15), то есть -32768.Как получить значение ячеек через функцию в VBA Excel
Я написал код для функции getIntdata(), но не может производить целочисленное значение. Может кто-нибудь, пожалуйста, посмотреть, что мне не хватает. Кроме того, пожалуйста, расскажите мне, как запустить функцию через процедуру Sub.
Sub getIn()
Dim Row As Integer
Dim Column As String
Column = InputBox("Please enter the column letter from A-Z", "Column Letter")
Row = InputBox("Please enter the row number from 1-20", "Row Number")
Debug.Print getIntData(Column, Row)
End Sub
Function getIntData(Col As String, Rw As Integer) As Integer
Dim Result As Variant
If Col = "" Or Rw < 1 Then
Result = "Invalid inputs"
ElseIf Not IsNumeric(Range(Col & Rw).Value) Then
Result = -32768
ElseIf Range(Col & Rw).Value <= -32768 Then
Result = "!"
ElseIf Range(Col & Rw).Value >= 32767 Then
Result = "Now what?"
Else
Result = Range(Col & Rw).Value
End If
MsgBox Result
' return value to caller
getIntData = Result
End Function
Bcz задачи требуют, чтобы я изменил вашу подфункцию, пожалуйста, снова просмотрите мой вопрос; Но после ссылки на эту подпрограмму с функцией, я получаю ошибку «ошибка несоответствия типа» в переменной «Результат», «getIntData = Result», макрос создает результат, затем возникает ошибка –
Добавлен тип cast для исправления ошибки –