Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VB.net中过滤excel数据_Vb.net_Vba_Date - Fatal编程技术网

在VB.net中过滤excel数据

在VB.net中过滤excel数据,vb.net,vba,date,Vb.net,Vba,Date,我有一行非常简单的代码,可以在Excel VBA中工作,但我一辈子都搞不清楚它在VB.NET中是如何工作的。任何帮助都将不胜感激 Selection.AutoFilter Field:=8, Criteria1:=">=" & sdate 编辑:完整的代码 Dim sDate as Date Dim xlapp As New Excel.Application sdate = DateTimePicker1.Value.Date OpenFileDialog1.Filt

我有一行非常简单的代码,可以在Excel VBA中工作,但我一辈子都搞不清楚它在VB.NET中是如何工作的。任何帮助都将不胜感激

 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)

首先,必须使用
DateSerial
将日期从
DateTimePicker1
转换为日期格式,并使用
ToOADate将日期的de值转换为
OLE Automation

您还必须将条件的运算符
“=>”
更改为
“>=”
,并且=符号必须在后面

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

我在VB.NET中有括号,但仍然不能正常工作。您使用的范围选择是什么?请参阅我的编辑,我已经添加了完整的代码。我怀疑这与自动筛选中的条件是字符串有关?但它在excel中运行良好。字段8中的数据类型是什么,标准(sdate)中的值是什么?该列是所有日期。sDate的值是来自用户选择的DateTimePicker输入的值。此代码给出了错误或错误的筛选器?不会引发错误,筛选器只是空白,没有选择行。我将更改您的代码作为答案,您可以测试它。工作完美,谢谢!