如图所示,如何在单元格中插入过滤器和排序按钮?
35209 次
2 回答
4
或者更好的是,单击已填写的单元格,然后单击“主页”>>“格式为表格”。它为您提供了很多关于过滤、排序和公式复制的选项以及一些有趣的设计。
于 2015-10-08T07:47:01.770 回答
0
这是一些代码,可与乔治使用表格的答案一起使用。
当过滤器工作正常时,我在添加表格时遇到了麻烦。您不能将“查询”范围转换为表格,但可以添加过滤器。请参阅 --> https://stackoverflow.com/a/40492129/5079799 & 免责声明 这是我的博客,我将在其中发布更新的代码https://www.freesoftwareservers.com/display/FREES/Filter+Worksheet+-+Table+- +查询+-+Excel+VBA
Public Sub DatatoTable(ws As Worksheet)
Dim TblStyle As String
TblStyle = "TableStyleMedium20"
Dim TblName As String
TblName = ws.Name
Dim TblRng As Range
Set TblRng = GetUsedRange(ws)
ws.Activate
TblRng.Select
Set lo = TblRng.ListObject
If Not lo Is Nothing Then
Debug.Print "Table Found"
Else
ws.ListObjects.Add(xlSrcRange, TblRng, , xlYes).Name = TblName
Range(TblName & "[#All]").Select
ws.ListObjects(TblName).TableStyle = TblStyle
End If
End Sub
Public Function GetUsedRange(ws As Worksheet) As Range
Dim lRow As Integer, lCol As Integer, fCol As Integer, fRow As Integer
fCol = Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlLeft).Column
lCol = Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
fRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlDown).Row
lRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Set GetUsedRange = ws.Range(Cells(fRow, fCol), Cells(lRow, lCol))
End Function
Sub Test()
Call DatatoTable(ActiveSheet)
End Sub
于 2020-09-30T03:57:11.673 回答
