2016-04-25 78 views
-1

我有一個非常簡單的代碼行,可以在Excel VBA中工作,但是我不能在我的生活中弄清楚它是如何在VB.NET中工作的。任何幫助,將不勝感激。在VB.net中過濾Excel日期

Selection.AutoFilter Field:=8, Criteria1:=">=" & sdate 

編輯:完整的代碼

Dim sDate as Date 
Dim xlapp As New Excel.Application 
sdate = DateTimePicker1.Value.Date 
OpenFileDialog1.Filter = "Excel Documents | *.xls; *.xlsx; *.xlsxm" 
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then 
xlWB= xlapp.Workbooks.Open(OpenFileDialog1.FileName) 

xlWB.Worksheets("Data").Range("H1").Select() 
xlapp.Selection.AutoFilter()    
xlapp.Selection.AutoFilter(Field:=8, Criteria1:="=>" & sDate) 
+0

此代碼給出錯誤或錯誤的過濾器? –

+0

不會拋出錯誤,過濾器只是空白,並且沒有行被選中。 – Istha

+0

我有你在代碼中的代碼,你可以測試它。 –

回答

1

首先,你必須日期從DateTimePicker1轉換爲日期格式DateSerial,並轉換日期的日值OLE AutomationToOADate

你也必須改變標準"=>"">="的運算符,=號必須在後面。

Dim sDate As Date 
Dim xlapp As New Excel.Application 
Dim xlWB As Excel.Workbook 
Dim dpDate As Date = DateTimePicker1.Value.Date 
sDate = DateSerial(dpDate.Year, dpDate.Month, dpDate.Day) 
OpenFileDialog1.Filter = "Excel Documents | *.xls; *.xlsx; *.xlsxm" 
If OpenFileDialog1.ShowDialog = DialogResult.OK Then 
    xlWB = xlapp.Workbooks.Open(OpenFileDialog1.FileName) 

    xlWB.Worksheets("Data").Range("H1").Select() 
    xlapp.Selection.AutoFilter() 
    xlapp.Selection.AutoFilter(Field:=8, Criteria1:=">=" & sDate.ToOADate) 
End If 
+0

我有VB.NET中的括號,但仍然無法正常工作。 – Istha

+0

什麼是您使用的範圍選擇? –

+0

看到我的編輯,我已經添加完整的代碼。我懷疑它與自動過濾器是一個字符串的標準有關嗎?它在Excel中工作正常。 – Istha