我使用VBA在Excel 2010中对筛选过的工作表进行排序。从视觉上看,排序是有效的,但是当我在VBA中遍历已排序、过滤的范围时,该范围似乎仍然保持原来的顺序。就我的目的而言,这是不可取的。
下面是我循环代码的摘录:
For r = 2 To LastRow
Set row = ws.Range(r & ":" & r)
Debug.Print row.Row
Next
我需要过滤包含日期的列。我需要得到日期在current date和current date + 15 days之间的所有行
这是我的VBA代码:
Dim seuilDate As Date, currentDate As Date
seuilDate = DateAdd("d", 15, Date)
currentDate = Date
MsgBox "Date seuil :" & seuilDate & " Current Date:" & currentDate
Wit
我的代码是
With ActiveSheet
.AutoFilterMode = False
.Range("23:23").AutoFilter
End With
这在Excel2010中工作得很好,但是使用Excel2016我得到:-
Range类的运行时错误'1004‘AutoFilter方法失败
此外,我还可以手动单击中的filter图标(在Data >Filter下),但不能用VBA代码来实现。
任何想法都很受欢迎。
我正在尝试用VBA创建一个自动过滤器(Excel 2013)。我发现有两个困难:
首先,交叉工作表过滤不起作用。
第二,我不能自动添加*通配符,即使在尝试了许多在互联网上和其他地方找到的建议之后。我也有多个字段过滤的麻烦,但这可以通过使用2个过滤器解决。
我的代码:
Dim ws As Worksheet
Dim ws2 As Worksheet
Set ws = Sheets("Szuro")
Set ws2 = Sheets("Geodeta_adatok")
ws2.Range("A1").Autofilter _
最近,我有一些关于多列的动态过滤的有趣问题。此外,我已经在S/O中搜索了所有的解决方案,但似乎没有一个有效: Autofilter for multiple columns in excel VBA :VBA for filtering columns :Dynamic filter using excel VBA 最近,我看了一篇Dynamic Filtering in Excel using VBA 的教程(注:我没有Microsoft365,因此过滤功能对我不起作用)。 我试图实现的是,当VBA脚本检测到textbox中的更改时,我只想使用一个文本框(链接在单元格C3上)同时过滤出列2
我有一组数据,每天更新在我的excel表格上。我需要自动过滤系统日期到今天的日期,在E列和系统时间F列在0730至1930年之间,通过excel VBA每日。我该怎么做?
我试过用
Sub DateNTimeFilter()
Dim DateToday As Date
DateToday = Today()
Selection.AutoFilter
ActiveSheet.Range("E1:E").Autofilter Field=5, Operator:=x1Filtervalues, Criteria:=TodayDate
我的Excel文件中有三列当前为AutoFiltered。我的任务是设置多个过滤器。我开始的方法是使用ActiveX复选框构建一个选项的“菜单”,并将“链接的单元格”属性分配给右侧的单元格。因此,如果选中第一个选项,单元格BB30将显示'TRUE‘。
问题开始于这样一个事实:第一列有16个项目,第二列有11个项目,第三列有5个项目。我的老板希望它工作的方式是,如果他们从第一列选择2个选项,从第二列选择一个项目,它就会过滤该信息上的数据(在单独的工作表上)。
示例数据:
Column A Column B Column C
--------
我正在尝试删除包含任何指定值的行。下面的代码在一个大约200k行的工作表中工作,但当我试图在一个350k行的工作表中运行它时,excel崩溃了。如何让它更有效率?
Sub MultiDelete()
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
Range("A1").Activate 'change to suit the column containing the names
Dim MultiDelete
我有一个Excel表,其中C列的一些单元格包含单词"Rinse“(其他单元格有不同的其他内容)。
使用VBA代码,我将选择C列中包含单词"Rinse“的所有行--这段代码工作得很好。
For i = 3 To 300
If Cells(i, 3).Value = "Rinse" Then
Rows(i).Select
Selection.FormatConditions.Delete
End If
Next
但是,我想做的正好相反,即选择C列中不包含单词"Rinse“的所有行。我试过以下几种方法,但不起作用
我的团队正在使用Sypder (Python)中的xlwing将Excel表格转换为CSV格式。但是,当筛选表时,这会改变CSV输出。是否有可以从活动Excel工作表中清除筛选器的xlwing命令? 在VBA中类似的命令是(来自Excel 2013 VBA Clear All Filters macro): Sub Macro1()
Cells.AutoFilter
End Sub
如果我在输入表上应用自动筛选器,然后运行VBA代码,则代码不关心自动筛选器。
但是,有时在自动过滤的工作表上运行VBA代码会破坏程序的结果。
所以,我的问题是: VBA关心自动过滤器吗?
例如:
Sub check()
Dim rng as range
Set rng = Sheets("input").Range("A1")
row = 0
Do until rng.offset(row,0) = ""
row = row + 1
Loop
End Sub
在上面的代码中,VBA并不关心在
我已经在Excel先生上发布了这个Qn,但没有一个解决方案有效。
我在这里重新生成Qn:
使用Excel 2010。我希望Excel在单元格值不等于Base或2*Base时提醒我,但如果单元格不是Base,它可能是2*Base,反之亦然;因此Excel总是告诉我这是错误的。
我应该如何修改下面的代码?
Sub SubTotal_test()
Dim k, i, j, minim, countleft, base, tmp_row, Last_Row, rw As Integer
base = InputBox("State the number of items
你好,我在excel中有以下数据集。在每个产品结束后,总数将在下一行中给出,“*”符号将出现在“总计”行之前。
Product Type Cost
A 1 10
A 1 20
A 2 10
A 1 20
* A 60
B 1 30
B 7 10
B 7 30
B 4 50
* B 120
C 3 10
我已经将一个类从VB6升级到VB.NET,以便通过COM在Excel中使用。
在VB6中,我在类MyScalars中定义了如下属性:
Public Property Get Item(vntIndexKey As Variant) As MyScalar
Attribute Item.VB_UserMemId = 0
Set Item = mCol(vntIndexKey)
...
End Property
这似乎使得我可以在Excel VBA中访问此属性,而无需指定它(因此类似于默认属性):
Dim oOut As Object
Set oOut = MyScalars(Ra
我有VBA代码,运行sql服务器存储的proc,将数据导入excel。
Excel数据:
Id Division Department Scale
1 North IT 8.5
2 South Finance 8.0
3 North Finance 8.0
4 West IT 8.5
5 East Finance 8.0
6 South