透明世界1987 发表于 2023-4-2 09:21

请大神看一下,怎么把公式改成代码





哥儿- 发表于 2023-4-2 12:59

试下
Private Sub Worksheet_Change(ByVal Target As Range)
   
    Sheets("供应商交期追踪表")..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 =

      If m = 0 Then Exit Sub
      
      
      
      ' = "=INDEX(供应商交期追踪表!A1:A60000,MATCH(基本生产领料单!B2,供应商交期追踪表!c1:c60000,0))"
      
       = .Value
       = "=供应商交期追踪表!L8=$B$2"
      
      Sheets("供应商交期追踪表")..AdvancedFilter 2, ,
      
       = ""
      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
      .Font.Size = 10
      .Font.Size = 11
      .Font.Size = 15
      
      
      
    End If
   
   
End Sub

透明世界1987 发表于 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("供应商交期追踪表")..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 =

      If m = 0 Then Exit Sub
      
      
      
      ' = "=INDEX(供应商交期追踪表!A1:A60000,MATCH(基本生产领料单!B2,供应商交期追踪表!c1:c60000,0))"
      
       = .Value
       = "=供应商交期追踪表!L8=$B$2"
      
      Sheets("供应商交期追踪表")..AdvancedFilter 2, ,
      
       = ""
      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
      .Font.Size = 10
      .Font.Size = 11
      .Font.Size = 15
      
      
      
    End If
   
   
End Sub

透明世界1987 发表于 2023-4-2 13:31

哥儿- 发表于 2023-4-2 13:28
忘了,加个application.countif

加了这个提示类型不匹配:'(
页: [1]
查看完整版本: 请大神看一下,怎么把公式改成代码