在VB.net中过滤excel数据
我有一行非常简单的代码,可以在Excel VBA中工作,但我一辈子都搞不清楚它在VB.NET中是如何工作的。任何帮助都将不胜感激在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
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输入的值。此代码给出了错误或错误的筛选器?不会引发错误,筛选器只是空白,没有选择行。我将更改您的代码作为答案,您可以测试它。工作完美,谢谢!