2022-12-29 09:51来源:m.sf1369.com作者:宇宇
暂时想到两个方法:
方法一:
需要使用数组了,先将数据进行排序(日期+客户代码),使用函数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列进行填充。因为没有数据,所以单元格引用可能会有错误,可以自行调整下哈。
可以达到效果,但有个缺陷:因为筛选区的字段和数据源的字段不完全一致,需要将函数输入多次。
方法二:
使用高级筛选+VBA,完美实现你想要的结果。先看效果:将数据筛选过来后,可以根据需求,把不需要的列进行隐藏。这块内容不太好写,我在网上找了个差不多的讲解视频,你看看:
EXCEL中高级筛选改变条件后立即刷新筛选结果VBA案例解析-Excel实例教学
如果解决了问题,帮忙给个赞和关注哈~
详细步骤如下:
1.在VBE界面,双击“Thisworkbook”
2.此处选择workbook,会自动出现两串代码
3.在代码中间,添加上要打开Excel运行的代码
4.保存并关闭,再打开这个Excel,就会自动弹出VBA界面来了
打开Excel VBA编辑器最简单的方法莫过于使用快捷键,打开Excel后按Alt+F11便可以打开Excel VBA编辑器了。
END
1
如果记不住快捷键还有一种简便的方法能够快速打开Excel VBA编辑器,右键单击工作表表情,然后选择查看代码就可以了。
2
大家来看一下打开的Excel VBA编辑器,我们此时便可以编辑代码了。
END
第三种打开Excel VBA编辑器的方法就是首先显示Excel开发工具,然后点击Visual Basic按钮。
此时我们便成功的打开了Excel VBA编辑器,不仅如此我们开可以在Excel开发工具中打开Excel宏。
直接写啊。
[A1]就是A1单元格。excel本身是自带vba库的,需要我们添加一下即可。
在上方工具栏位置点击鼠标右击,选择自定义功能区,右侧的“开发工具”前打上勾,这样就有关于VBA的开发工具了。
其次,点击左上角的文件,在新的界面中找到选项点击开发工具,点击打钩,确定即可。
方法/步骤如下
1
打开Excel开发工具下的Visual Basic。
2
在项目工程区域,鼠标右击选择“插入”,点击“用户窗体”。
3
添加窗体后,在其右侧会自动出现一个工具箱。
4
点击“视图”下的工具箱可以控制它的显示和不显示。
5
点击工具箱中的控件,添加至用户窗体中。
6
点击执行按钮后,可以在Excel工作表中显示窗体界面,且可以使用控件按钮
for each 变量 in 容器 next for each dyg in range("a1:e10") msgbox dyg.value next 遍历a1到e10的每一个单元格的值.你可以事先往里面填数. 容器可以改成工作表,工作簿 如果需要溯及既往,for循环可以用循环节-1来处理,for each就没办法了. foreach代码更简洁.
可以设置excel文件的工作簿打开事件代码来检查帐号并执行非法登录则退出操作。提示:
1)使用environ函数获取相关系统信息,如environ(Computername)可以返回计算机名,environ(UserName)返回登录用户名等。
2)可以用thisworkbook.close语句来关闭当前文件private sub workbook_open()dim strUser as stringstrUser = environ(UserName)if strUser<>sa001 AND strUser<>sa002 thenmsgbox 非法用户,无权登录thisworkbook.closeend ifend sub