暂时想到两个方法excel vba 教程:
方法一:需要使用数组了excel vba 教程,先将数据进行排序(日期+客户代码),使用函数offset()+if()+match()+countifs()的组合。先选中筛选区的A9单元格,输入函数:=If((row(A9)-8)<=countifs(数据源!C:C,筛选区!K4,数据源!E:E,筛选区!K5),offset(数据源!B1,if(match(筛选区!K4,数据源!C:C,0)<match(筛选区!K5,数据源!E:E,0),match(筛选区!K5,数据源!E:E,0),match(筛选区!K4,数据源!C:C,0))+row(A9)-10,0,1,1),\"\") 按ctrl+shift+enter组合键输入公式,将A9单元格填充到下方单元格(长度>=符合筛选条件的最大长度),根据字段,将B列-H列进行填充。
因为没有数据excel vba 教程,所以单元格引用可能会有错误,可以自行调整下哈。
可以达到效果,但有个缺陷:因为筛选区的字段和数据源的字段不完全一致,需要将函数输入多次。
方法二:使用高级筛选+VBA,完美实现你想要的结果。先看效果:
将数据筛选过来后,可以根据需求,把不需要的列进行隐藏。这块内容不太好写,我在网上找了个差不多的讲解视频,你看看:
EXCEL中高级筛选改变条件后立即刷新筛选结果VBA案例解析-Excel实例教学如果解决了问题,帮忙给个赞和关注哈~
在excel中如何使用vba?
VBA算得上是Excel的顶级应用技术了,使用VBA几乎可以解决99.99%的Excel应用问题,本问题也不例外。通过VBA遍历同一路径下的所有文档,查找文档中的的特定内容,并把对应值提取出来。具体图文演示如下:
在\"悟空问答\\在excel中如何使用vba\"这个文件夹路径下有几个文档,如题所描述,各文档中不同位置上的相同内容对应不同值,现在需要批量提取这个对应值,比如提取到测试工作薄里,效果如下图所示。
实现以上功能的VBA代码如下:
Sub VBA应用()
Dim mypath As String, file As String
Dim wb As Workbook
Dim rng As Range
mypath = ThisWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
file = Dir(mypath & \"\\*.xlsx\")
Do While Len(file) > 0
If file <> ThisWorkbook.Name Then
Workbooks.Open mypath & Application.PathSeparator & file, False
Set wb = ActiveWorkbook
Set rng = wb.Sheets(1).UsedRange.Find(\"测试\").Offset(0, 1)
If rng Is Nothing Then
Exit Do
Else
n = n + 1
With ThisWorkbook.Sheets(1)
.Cells(n + 1, 2) = rng.Value
.Cells(n + 1, 3) = Left(file, Len(file) - 5)
End With
End If
file = Dir
wb.Close
End If
Loop
Set wb = Nothing
Application.ScreenUpdating =True
Application.DisplayAlerts = True
End Sub
代码放入测试工作薄VBE编辑界面的模块中,按F5运行即可提取到各文档中测试对应的值。欢迎关注@Excel泥瓦匠,Excel学习,E路有你!