是先复制了一个相同大小的合并区域,然后用格式刷实现的么
是的
https://wwb.lanzouq.com/irj4W03drb7c
因为WPS自带合并单元格筛选的功能了,所以没写过这个动作,刚刚帮你写了一个VBS脚本,你测试看下可以用不,选中合并单元格后双击运行VBS脚本就可以了。也可以在脚本上右键然后用记事本打开,复制里面的代码,然后在QUICKER中添加一个运行脚本的模块,将代码粘贴进去,设置好脚本参数,以后就可以用QUICKER运行这个代码了
刚试了下好像在excel还不行,运行完是空值,应该哪步有问题,麻烦大佬再帮看看
运行完是空值是什么意思,最好截图加文字说明情况,我在WPS试了可以的呀,运行完后合并单元格里已经有值了,
例如图上,B5:B6是一个合并单元格,通常B6是没有值的,运行完脚本后,测试B6已经有值了。
大佬 这是我的操作步骤,不知道是哪步错了
大佬 你好 我想请教下 我在quicker里用脚本VBA ,提示这个,但是我写的在表里能正常运行,是为啥呢。比如我写的一个删除筛选行:Sub 删除本期历史数()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim sht, rng
On Error Resume Next
Set sht = Sheets("2022年收入成本")
sht.UsedRange.AutoFilter field:=4, Criteria1:=Sheets("跟进报表").Range("a1")
Set rng = sht.Range("a2:a" & sht.UsedRange.Rows.Count).EntireRow.SpecialCells(xlVisible)
rng.Delete
sht.UsedRange.AutoFilter
sht.Range("c1048576").End(xlUp + 1).Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
不好意思,没收到系统的回复通知,一直没看到你这个。你把脚本编码类型改为unicode试试,还有问题就在代码前面加插值符$$试试
那要注意什么哈 或者哪里有区分说明或教程不
几句话说不清,我改天抽空写一个教程吧,这几天太忙
好的,谢谢
Dim application
Set application = GetObject(,"excel.application")
Application.Calculation = -4135
Set sht = application.activeworkbook.workSheets("2022年收入成本")
sht.UsedRange.AutoFilter 4, application.activeworkbook.workSheets("跟进报表").Range("a1")
Set rng = sht.Range("a2:a" & sht.UsedRange.Rows.Count).EntireRow.SpecialCells(12)
sht.Range("c1048576").End(3).Select
Set application = Nothing
谢谢大佬,可以用了,现在我会一点VBA ,然而网上搜了VBA代码和VBS的区别,好像都没怎么讲到,想快速把VBA的代码调整为VBS的,大佬有相应的教程吗,或者见过的网络资源
没教程的,我都是自己摸索的,这几天实在太忙,有空了我整理一下
好的,感谢
大佬您好,感谢你启发了我,看了你的脚本,我一开始以为就是VBA,就去学了VBA,发现VBA能解决不少重复性工作的问题,然后又发现你的实际是VBS,通过getobject调用excel来实现,你的代码我基本都看得懂了,最初合并单元格的脚本用的excel确实有问题,可能在wps可以使用,然后我在VBA里改写了下,VBA可以实现了,我又学着你的VBS添加调用,到第12行 sheets.add after:=sheets(sheets.count).这个语法好像VBS不支持,然后还有-4122这个VBS好像也不支持,测试了好几次。确实还是不太懂VBA 和VBS 再哪些语法有区别,网上也没搜到,烦请指教。Dim Application, sh, Rng
Set Application = GetObject(, "excel.application")
Set Rng = Application.Selection
If Rng.Rows.Count = 1 Then WScript.Quit
arr = Rng.Value
For i = 2 To UBound(arr)
If arr(i, 1) = "" Then arr(i, 1) = arr(i - 1, 1)
Next
Set sh = Application.Sheets.Add(after:=Sheets(Sheets.Count))
Rng.Copy sh.Range("a1")
Set rng2 = sh.Range("a1").CurrentRegion
Rng.UnMerge
Rng.Value = arr
rng2.Copy
Rng.PasteSpecial -4122
sh.Delete
Set Application = Nothing
Set sh = Nothing
Set Rng = Nothing
VBS里不能直接写参数名:=参数值 这种,也无法识别VBA的固定参数,如xlPasteFormats,VBA可以识别,但VBS不行,只能识别xlPasteFormats代表的参数值,即-4122
https://getquicker.net/QA/Question/12629我总结了一些,你 可以参考一下
好的好的,感谢
是的
https://wwb.lanzouq.com/irj4W03drb7c
因为WPS自带合并单元格筛选的功能了,所以没写过这个动作,刚刚帮你写了一个VBS脚本,你测试看下可以用不,选中合并单元格后双击运行VBS脚本就可以了。也可以在脚本上右键然后用记事本打开,复制里面的代码,然后在QUICKER中添加一个运行脚本的模块,将代码粘贴进去,设置好脚本参数,以后就可以用QUICKER运行这个代码了
刚试了下好像在excel还不行,运行完是空值,应该哪步有问题,麻烦大佬再帮看看
运行完是空值是什么意思,最好截图加文字说明情况,我在WPS试了可以的呀,运行完后合并单元格里已经有值了,
例如图上,B5:B6是一个合并单元格,通常B6是没有值的,运行完脚本后,测试B6已经有值了。
大佬 这是我的操作步骤,不知道是哪步错了
大佬 你好 我想请教下 我在quicker里用脚本VBA ,提示这个,但是我写的在表里能正常运行,是为啥呢。比如我写的一个删除筛选行:Sub 删除本期历史数()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim sht, rng
On Error Resume Next
Set sht = Sheets("2022年收入成本")
sht.UsedRange.AutoFilter field:=4, Criteria1:=Sheets("跟进报表").Range("a1")
Set rng = sht.Range("a2:a" & sht.UsedRange.Rows.Count).EntireRow.SpecialCells(xlVisible)
rng.Delete
sht.UsedRange.AutoFilter
sht.Range("c1048576").End(xlUp + 1).Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
不好意思,没收到系统的回复通知,一直没看到你这个。你把脚本编码类型改为unicode试试,还有问题就在代码前面加插值符$$试试
那要注意什么哈 或者哪里有区分说明或教程不
几句话说不清,我改天抽空写一个教程吧,这几天太忙
好的,谢谢
Dim application
Set application = GetObject(,"excel.application")
Application.Calculation = -4135
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim sht, rng
On Error Resume Next
Set sht = application.activeworkbook.workSheets("2022年收入成本")
sht.UsedRange.AutoFilter 4, application.activeworkbook.workSheets("跟进报表").Range("a1")
Set rng = sht.Range("a2:a" & sht.UsedRange.Rows.Count).EntireRow.SpecialCells(12)
rng.Delete
sht.UsedRange.AutoFilter
sht.Range("c1048576").End(3).Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Set application = Nothing
谢谢大佬,可以用了,现在我会一点VBA ,然而网上搜了VBA代码和VBS的区别,好像都没怎么讲到,想快速把VBA的代码调整为VBS的,大佬有相应的教程吗,或者见过的网络资源
没教程的,我都是自己摸索的,这几天实在太忙,有空了我整理一下
好的,感谢
大佬您好,感谢你启发了我,看了你的脚本,我一开始以为就是VBA,就去学了VBA,发现VBA能解决不少重复性工作的问题,然后又发现你的实际是VBS,通过getobject调用excel来实现,你的代码我基本都看得懂了,最初合并单元格的脚本用的excel确实有问题,可能在wps可以使用,然后我在VBA里改写了下,VBA可以实现了,我又学着你的VBS添加调用,到第12行 sheets.add after:=sheets(sheets.count).这个语法好像VBS不支持,然后还有-4122这个VBS好像也不支持,测试了好几次。确实还是不太懂VBA 和VBS 再哪些语法有区别,网上也没搜到,烦请指教。Dim Application, sh, Rng
Set Application = GetObject(, "excel.application")
On Error Resume Next
Set Rng = Application.Selection
If Rng.Rows.Count = 1 Then WScript.Quit
arr = Rng.Value
For i = 2 To UBound(arr)
If arr(i, 1) = "" Then arr(i, 1) = arr(i - 1, 1)
Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set sh = Application.Sheets.Add(after:=Sheets(Sheets.Count))
Rng.Copy sh.Range("a1")
Set rng2 = sh.Range("a1").CurrentRegion
Rng.UnMerge
Rng.Value = arr
rng2.Copy
Rng.PasteSpecial -4122
sh.Delete
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Set Application = Nothing
Set sh = Nothing
Set Rng = Nothing
VBS里不能直接写参数名:=参数值 这种,也无法识别VBA的固定参数,如xlPasteFormats,VBA可以识别,但VBS不行,只能识别xlPasteFormats代表的参数值,即-4122
https://getquicker.net/QA/Question/12629我总结了一些,你 可以参考一下
好的好的,感谢