Rem <summary>
Rem 檢查是否有在在原本定義欄位之外的欄位輸入資料
Rem <param name="tcSheetName">Sheet名稱</param>
Rem <param name="tnColumnCount">原先定義欄位數量</param>
Rem <returns>True:通過檢查,False:未通過檢查</returns>
Function checkExceedInput(tcSheetName As String, tnColumnCount) As Boolean
'取得指定Sheet曾經己使用的區域
Dim myRange As Range
Set myRange = Worksheets(tcSheetName).UsedRange
'取得指定Sheet曾經己使用的區域的最大欄位編號(絕對位置)
Dim lnUsedColumnMaxNo As Integer
lnUsedColumnMaxNo = myRange.Column + myRange.Columns.Count - 1
'取得指定Sheet曾經己使用的區域的最大列數編號(絕對位置)
Dim lnUsedRowMaxNo As Integer
lnUsedRowMaxNo = myRange.Row + myRange.Rows.Count - 1
'如果『曾經己使用的區域的最大欄位編號』>『原先定義欄位數量』
'則檢查超過的欄位中是否有任何資料(都是不合法的!必須報警提示).
Dim lnI As Integer
Dim lnRowNo As Integer
If lnUsedColumnMaxNo > tnColumnCount Then
For lnI = (tnColumnCount + 1) To lnUsedColumnMaxNo
lnRowNo = 0
lnRowNo = Worksheets(tcSheetName).Cells(lnUsedRowMaxNo + 1, lnI).End(xlUp).Row
If lnRowNo > 1 Then
Worksheets(tcSheetName).Activate
Worksheets(tcSheetName).Cells(myRange.Row + lnRowNo - 1, myRange.Column + lnI - 1).Select
MsgBox "第" + CStr(lnRowNo) + "列,第" + CStr(lnI) + "行" + _
"己超出資料填寫區域,請檢查修正(刪除)後再存檔!"
checkExceedInput = False
Exit Function
End If
Next lnI
End If
'通過檢查
checkExceedInput = True
End Function