私はExcelの特定の列の最後の行を見つける機能を持っています。関数の遅延バインディングエラーを修正するにはExcelの列の最後の行を見つけなければなりませんか?
以下コードが
Private Function FindLastRowInColumn(ByVal XlWorkSheet As Excel.Worksheet, ByVal ColumnName As String) As Long
Dim LastRow As Long
With XlWorkSheet
LastRow = .Cells(.Rows.Count, ColumnName).End(Excel.XlDirection.xlUp).Row
End With
Return LastRow
End Function
である私はOption Strict
の電源を切らずにこのエラーを修正するにはどうすればよい
LastRow = .Cells(.Rows.Count, ColumnName).End(Excel.XlDirection.xlUp).Row
Error: Option Strict On disallows late binding.
ライン上のエラーを取得していますか?
jmcilhinneyの推奨事項で問題を解決できました。 以下は私のために働いたコードです。たぶん、ファイルの先頭に
Option Strict Off
を書く
Public Function FindLastRowInColumn(ByVal XlWorkSheet As Excel.Worksheet, ByVal ColumnName As String) As Long
Dim LastRow As Long
With XlWorkSheet
LastRow = CType(.Cells(.Rows.Count, ColumnName), Excel.Range).End(Excel.XlDirection.xlUp).Row
End With
Return LastRow
End Function
[オプション厳密には、遅延バインディングを不許可]の可能性のある重複( http://stackoverflow.com/questions/12375405/option-strict-on-disallows-late-binding) – MusicLovingIndianGirl
最後の行を細かくするには 'XlWorkSheet.Range.UsedRange.Rows.Count'が役立ちます。しかしそれにはいくつかの条件があります。 – Yog