Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 640|回复: 5

[已解决]请大神看一下,怎么把公式改成代码

[复制链接]
发表于 2023-4-2 09:21 | 显示全部楼层 |阅读模式
微信截图_20230402091706.png
公式改成代码.zip (227.66 KB, 下载次数: 13)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2023-4-2 12:59 | 显示全部楼层
试下
Private Sub Worksheet_Change(ByVal Target As Range)
   
    Sheets("供应商交期追踪表").[A7:P7].AutoFilter '显示筛选箭头
   
    If Target.Address = "$B$2" Then
        
        
        
        Cells(2, 1) = "入库单号"
        Cells(2, 3) = "此单据务必随货发运,如有遗失未随货,请提前告知"
        
        Cells(2, 5) = "总行数:"
        
        Cells(3, 1) = "设备号"
        Cells(3, 2) = "箱包设备"
        Cells(3, 3) = "项目名称"
        Cells(3, 4) = "部件名称"
        Cells(3, 5) = "供应商"
        Cells(3, 6) = "到货地"
        Cells(3, 7) = "要求到货日期"
        Cells(3, 8) = "合同编号"
        Cells(3, 9) = "其他备注"
        
        Range("A4:I360").ClearContents
        
        
        m = [countif(供应商交期追踪表!L:L,B2)]

        If m = 0 Then Exit Sub
        
        
        
        '[D2] = "=INDEX(供应商交期追踪表!A1:A60000,MATCH(基本生产领料单!B2,供应商交期追踪表!c1:c60000,0))"
        
        [a3:I3] = [a3:I3].Value
        [Z2] = "=供应商交期追踪表!L8=$B$2"
        
        Sheets("供应商交期追踪表").[B7:P100000].AdvancedFilter 2, [Z1:Z2], [A3:I360]
        
        [Z2] = ""
        Range("A1:I2").Borders.LineStyle = 0
        Range("A3:I3").Borders.LineStyle = 1
        Range("A4:I360").Borders.LineStyle = 0
        Range("A1") = IIf(CountIf(A4, "*S*"), "老王公司--送货(入库)单", "老刘--送货(入库)单")
        Range("F2") = Cells(Rows.Count, "H").End(3).Row - 3

        [A2:I400].Font.Size = 10
        [a2:I3].Font.Size = 11
        [a1:I1].Font.Size = 15
        
        
        
    End If
   
   
End Sub
回复

使用道具 举报

 楼主| 发表于 2023-4-2 13:26 | 显示全部楼层
哥儿- 发表于 2023-4-2 12:59
试下
Private Sub Worksheet_Change(ByVal Target As Range)
   

感谢感谢,有报错
CountIf  这个提示子过程或函数未定义
回复

使用道具 举报

发表于 2023-4-2 13:28 | 显示全部楼层
透明世界1987 发表于 2023-4-2 13:26
感谢感谢,有报错
CountIf  这个提示子过程或函数未定义

忘了,加个application.countif
回复

使用道具 举报

发表于 2023-4-2 13:30 | 显示全部楼层    本楼为最佳答案   
本帖最后由 哥儿- 于 2023-4-2 13:31 编辑
透明世界1987 发表于 2023-4-2 13:26
感谢感谢,有报错
CountIf  这个提示子过程或函数未定义

Private Sub Worksheet_Change(ByVal Target As Range)
   
    Sheets("供应商交期追踪表").[A7:P7].AutoFilter '显示筛选箭头
   
    If Target.Address = "$B$2" Then
        
        
        
        Cells(2, 1) = "入库单号"
        Cells(2, 3) = "此单据务必随货发运,如有遗失未随货,请提前告知"
        
        Cells(2, 5) = "总行数:"
        
        Cells(3, 1) = "设备号"
        Cells(3, 2) = "箱包设备"
        Cells(3, 3) = "项目名称"
        Cells(3, 4) = "部件名称"
        Cells(3, 5) = "供应商"
        Cells(3, 6) = "到货地"
        Cells(3, 7) = "要求到货日期"
        Cells(3, 8) = "合同编号"
        Cells(3, 9) = "其他备注"
        
        Range("A4:I360").ClearContents
        
        
        m = [countif(供应商交期追踪表!L:L,B2)]

        If m = 0 Then Exit Sub
        
        
        
        '[D2] = "=INDEX(供应商交期追踪表!A1:A60000,MATCH(基本生产领料单!B2,供应商交期追踪表!c1:c60000,0))"
        
        [a3:I3] = [a3:I3].Value
        [Z2] = "=供应商交期追踪表!L8=$B$2"
        
        Sheets("供应商交期追踪表").[B7:P100000].AdvancedFilter 2, [Z1:Z2], [A3:I360]
        
        [Z2] = ""
        Range("A1:I2").Borders.LineStyle = 0
        Range("A3:I3").Borders.LineStyle = 1
        Range("A4:I360").Borders.LineStyle = 0
        Range("A1") = IIf(application.CountIf(range("A4"), "*S*"), "老王公司--送货(入库)单", "老刘--送货(入库)单")
        Range("F2") = Cells(Rows.Count, "H").End(3).Row - 3

        [A2:I400].Font.Size = 10
        [a2:I3].Font.Size = 11
        [a1:I1].Font.Size = 15
        
        
        
    End If
   
   
End Sub
回复

使用道具 举报

 楼主| 发表于 2023-4-2 13:31 | 显示全部楼层
哥儿- 发表于 2023-4-2 13:28
忘了,加个application.countif

加了这个提示类型不匹配
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-28 16:04 , Processed in 0.338553 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表