2
請幫助調試: 運行時錯誤「438」對象不支持此屬性或方法Excel的VBA:運行時錯誤「438」對象不支持此屬性或方法
我不知道爲什麼我的功能ConvertToStdDateFormat(InputRange由於範圍)不接受的範圍內「ThisRange」
這裏是我的輸入是什麼樣子
201301 201401 201301 201401
201302 201402 201302 201402
201303 201403 201303 201403
201304 201404 201304 201404
201305 201405 201305 201405
下面是代碼
Sub trythis()
Dim ThisRange As Range
Dim MonthYear_array As Variant
start_date_row = 1
end_date_row = 12
With ActiveSheet
Set ThisRange = .Range(Cells(start_date_row, 1), Cells(end_date_row, 2))
MonthYear_array = .Range(Cells(start_date_row, 4), Cells(end_date_row, 5)).Value
End With
Call ConvertToStdDateFormat(ActiveSheet.Range(Cells(start_date_row,1), Cells(end_date_row, 2)))
Call ConvertToStdDateFormat(ActiveSheet.ThisRange)
End Sub
Public Function GetMonthYearFormatted(InputDate)
'InputDate should be in the format "201401" i.e. year(2014)month(01)
IPString = CStr(InputDate)
monthval = CInt(Right(IPString, 2))
yearval = CInt(Left(IPString, 4))
opDate = DateSerial(yearval, monthval, 1)
OPFormatDate = Month(opDate) & "-" & Year(opDate)
GetMonthYearFormatted = OPFormatDate
End Function
Function ConvertToStdDateFormat(InputRange As Range)
Dim temp_array As Variant
temp_array = InputRange
For colsC = 1 To UBound(temp_array, 2)
For rowsC = 1 To UBound(temp_array, 1)
temp_array(rowsC, colsC) = GetMonthYearFormatted(temp_array(rowsC, colsC))
Next rowsC
Next colsC
InputRange.Resize(UBound(temp_array, 1), UBound(temp_array, 2)) = temp_array
ConvertToStdDateFormat = Null
End Function