Public rnTem As Range Public stKehu As String Public temDingdan As String Public Const rowDingdan As Integer = 22 Public Sub ShengchengTongjiJine() Application.ScreenUpdating = True Application.DisplayAlerts = False With tongji temRowTongji = .Cells(1048576, 5).End(xlUp).Row If temRowTongji > 1 Then .Range(.Cells(2, 2), .Cells(temRowTongji, 32)).Delete End With With mingxi temRowMingxi = .Cells(1048576, 2).End(xlUp).Row .Range(.Cells(2, 1), .Cells(temRowMingxi, 20)).Copy tongji.Cells(2, 2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End With With tongji temRowTongji = .Cells(1048576, 5).End(xlUp).Row If temRowTongji > 1 Then .Range("S2:T" & temRowTongji).Delete Shift:=xlToLeft .Range("P2:P" & temRowTongji).Delete Shift:=xlToLeft .Range("L2:M" & temRowTongji).Delete Shift:=xlToLeft .Range("J2:J" & temRowTongji).Delete Shift:=xlToLeft .Range("E2:F" & temRowTongji).Delete Shift:=xlToLeft ' .Range("E2:F" & temRowTongji).Delete Shift:=xlToLeft ' If .AutoFilterMode = True Then ' .Cells.AutoFilter ' End If ' .Range(.Cells(1, 2), .Cells(temRowTongji, 15)).AutoFilter ' .AutoFilter.Sort.SortFields.Clear ' .AutoFilter.Sort.SortFields.Add Key:=.Range(.Cells(2, 2), .Cells(temRowTongji, 2)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ' .AutoFilter.Sort.SortFields.Add Key:=.Range(.Cells(2, 3), .Cells(temRowTongji, 3)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ' .AutoFilter.Sort.SortFields.Add Key:=.Range(.Cells(2, 13), .Cells(temRowTongji, 13)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ' With .AutoFilter.Sort ' .Header = xlYes ' .MatchCase = False ' .Orientation = xlTopToBottom ' .SortMethod = xlPinYin ' .Apply ' End With On Error Resume Next Set Rng = data.Range(data.Cells(2, 2), data.Cells(data.Cells(1000, 2).End(xlUp).Row, 1)) Application.AddCustomList (Rng) On Error GoTo 0 '增加一个自定义序列,该参数除了支持单元格对象,也支持数组。 n = Application.CustomListCount .Select '自定义序列的数目 .Range(.Cells(1, 2), .Cells(temRowTongji, 15)).Sort key1:=[b2], order1:=xlAscending, Header:=xlYes, ordercustom:=n + 1 '使用自定义排序,ordercustom指定使用哪个自定义序列排序。 '当使用自定义排序时,需要将OrderCustom参数设置为指定的序列在自定义列表中的顺序加1 Application.DeleteCustomList n .Range(.Cells(2, 2), .Cells(temRowTongji, 14)).NumberFormatLocal = "G/通用格式" .Range(.Cells(2, 9), .Cells(temRowTongji, 10)).NumberFormatLocal = "¥#,##0.00;¥-#,##0.00" .Range(.Cells(2, 14), .Cells(temRowTongji, 14)).NumberFormatLocal = "¥#,##0.00;¥-#,##0.00" startMerge = 2 For i = 3 To temRowTongji If .Cells(i, 2) = .Cells(i - 1, 2) Then Else If i - 1 > startMerge Then .Rows(i).Insert .Rows(i).Interior.Pattern = xlNone i = i + 1 temRowTongji = temRowTongji + 1 startMerge = i Else startMerge = i End If End If Next startMerge = 2 For i = 2 To temRowTongji If .Cells(i, 3) = .Cells(i - 1, 3) And .Cells(i, 13) = .Cells(i - 1, 13) Then Else If i - 1 > startMerge Then .Range(.Cells(startMerge, 13), .Cells(i - 1, 13)).Merge ' .Range(.Cells(startMerge, 11), .Cells(i - 1, 11)).Merge startMerge = i Else startMerge = i End If End If Next temSum = 0 startMerge = 2 For i = 3 To temRowTongji + 1 temSum = temSum + .Cells(i - 1, 10) If .Cells(i, 3) = .Cells(i - 1, 3) Then Else If i - 1 > startMerge Then .Range(.Cells(startMerge, 2), .Cells(i - 1, 2)).Merge .Range(.Cells(startMerge, 3), .Cells(i - 1, 3)).Merge .Range(.Cells(startMerge, 4), .Cells(i - 1, 4)).Merge ' .Range(.Cells(startMerge, 6), .Cells(i - 1, 6)).Merge ' .Range(.Cells(startMerge, 7), .Cells(i - 1, 7)).Merge ' .Range(.Cells(startMerge, 8), .Cells(i - 1, 8)).Merge ' .Range(.Cells(startMerge, 9), .Cells(i - 1, 9)).Merge ' .Range(.Cells(startMerge, 10), .Cells(i - 1, 10)).Merge ' .Range(.Cells(startMerge, 11), .Cells(i - 1, 11)).Merge .Range(.Cells(startMerge, 14), .Cells(i - 1, 14)).Merge .Cells(startMerge, 14) = temSum temSum = 0 startMerge = i Else If .Cells(startMerge, 5) <> "" Then .Cells(startMerge, 14) = temSum temSum = 0 startMerge = i End If End If Next Call setFormatMingxi(.Range(.Cells(2, 2), .Cells(temRowTongji, 15))) End If End With End Sub Sub shengchengWeishengchan() Application.ScreenUpdating = False Application.DisplayAlerts = False With mingxi temRowMingxi = .Cells(1048576, 1).End(xlUp).Row temRowWeishengchan = weishengchan.Cells(1048576, 3).End(xlUp).Row If temRowWeishengchan > 1 Then weishengchan.Range(weishengchan.Cells(2, 1), weishengchan.Cells(temRowWeishengchan, 12)).Delete j = 2 For i = 2 To temRowMingxi If .Cells(i, 17).Value > 0 Then Set rnTemp = data.Cells.Find(.Cells(i, 1).Value) If Not rnTemp Is Nothing Then weishengchan.Cells(j, 1).Value = data.Cells(rnTemp.Row, 1).Value ' weichuhe.Range(weichuhe.Cells(j, 1), weichuhe.Cells(j, 14)).Interior.Color = rnTemp.Interior.Color Else weishengchan.Cells(j, 1).Value = .Cells(i, 1).Value End If weishengchan.Cells(j, 10).Value = .Cells(i, 2).Value weishengchan.Cells(j, 3) = .Cells(i, 6).Value If weishengchan.Range(weishengchan.Cells(j, 1), weishengchan.Cells(j, 2)).MergeCells = False Then weishengchan.Range(weishengchan.Cells(j, 1), weishengchan.Cells(j, 2)).Merge End If weishengchan.Cells(j, 4).Value = .Cells(i, 7).Value weishengchan.Cells(j, 5).Value = .Cells(i, 8).Value weishengchan.Cells(j, 6).Value = .Cells(i, 10).Value & .Cells(i, 9).Value weishengchan.Cells(j, 7).Value = .Cells(i, 12).Value weishengchan.Cells(j, 8).Value = .Cells(i, 3).Value ' weishengchan.Cells(j, 9) = .Cells(i, 12) ' weishengchan.Cells(j, 10) = .Cells(i, 17) ' weishengchan.Cells(j, 11) = .Cells(i, 20) j = j + 1 End If Next End With With weishengchan If .AutoFilterMode = True Then .Cells.AutoFilter End If .Range(.Cells(1, 1), .Cells(j - 1, 10)).AutoFilter .AutoFilter.Sort.SortFields.Clear .AutoFilter.Sort.SortFields.Add Key:=.Range(.Cells(2, 7), .Cells(j - 1, 7)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .AutoFilter.Sort.SortFields.Add Key:=.Range(.Cells(2, 1), .Cells(j - 1, 1)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .AutoFilter.Sort.SortFields.Add Key:=.Range(.Cells(2, 8), .Cells(j - 1, 8)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With .AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With startMerge = 2 For i = 2 To j If .Cells(i, 7) = .Cells(i - 1, 7) And .Cells(i, 10) = .Cells(i - 1, 10) Then Else If i - 1 > startMerge Then .Range(.Cells(startMerge, 10), .Cells(i - 1, 10)).Merge ' .Range(.Cells(startMerge, 11), .Cells(i - 1, 11)).Merge startMerge = i Else startMerge = i End If End If Next startMerge = 2 For i = 2 To j If .Cells(i, 1) = .Cells(i - 1, 1) And .Cells(i, 7) = .Cells(i - 1, 7) And .Cells(i, 8) = .Cells(i - 1, 8) Then Else If i - 1 > startMerge Then .Range(.Cells(startMerge, 8), .Cells(i - 1, 8)).Merge ' .Range(.Cells(startMerge, 11), .Cells(i - 1, 11)).Merge startMerge = i Else startMerge = i End If End If Next startMerge = 2 For i = 2 To j If .Cells(i, 1) = .Cells(i - 1, 1) And .Cells(i, 7) = .Cells(i - 1, 7) Then Else If i - 1 > startMerge Then .Range(.Cells(startMerge, 7), .Cells(i - 1, 7)).Merge ' .Range(.Cells(startMerge, 11), .Cells(i - 1, 11)).Merge startMerge = i Else startMerge = i End If End If Next startMerge = 2 For i = 2 To j If .Cells(i, 1) = .Cells(i - 1, 1) Then Else If i - 1 > startMerge Then .Range(.Cells(startMerge, 1), .Cells(i - 1, 2)).Merge ' .Range(.Cells(startMerge, 2), .Cells(i - 1, 2)).Merge ' .Range(.Cells(startMerge, 3), .Cells(i - 1, 3)).Merge ' .Range(.Cells(startMerge, 11), .Cells(i - 1, 11)).Merge startMerge = i Else startMerge = i End If End If Next .Select .Range(.Cells(1, 1), .Cells(j - 1, 10)).Select Selection.HorizontalAlignment = xlCenter Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With End With weishengchan.Select weishengchan.Cells(1, 1).Select Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub Sub shengchengsuihuo(temDate, temDingdan) 'temDate = "2021.04.27" 'temDingdan = "5100049423" Application.ScreenUpdating = False With mingxi If UserForm1.LiJiasuihuodan.Value = True Then lijia.Range(lijia.Cells(5, 1), lijia.Cells(10, 12)).ClearContents lijia.Cells(15, 1) = "" '"备注:" lijia.Cells(13, 1) = "收货地址:" lijia.Cells(14, 1) = "收货人:" lijia.Cells(2, 10) = "" Else suihuo.Range(suihuo.Cells(4, 1), suihuo.Cells(18, 13)).ClearContents suihuo.Range(suihuo.Cells(1, 2), suihuo.Cells(1, 5)).ClearContents suihuo.Range(suihuo.Cells(1, 7), suihuo.Cells(1, 9)).ClearContents ' suihuo.Range(suihuo.Cells(21, 1), suihuo.Cells(21, 13)).ClearContents ' suihuo.Range(suihuo.Cells(22, 1), suihuo.Cells(22, 13)).ClearContents suihuo.Cells(1, 12) = ClearContents suihuo.Cells(23, 1) = "" '"备注:" suihuo.Cells(21, 1) = "收货地址:" suihuo.Cells(22, 1) = "收货人:" temRowsuihuo = suihuo.Cells(1048576, 1).End(xlUp).Row If temRowsuihuo > 25 Then suihuo.Rows("25:" & temRowsuihuo).Delete End If temRowMingxi = .Cells(1048576, 1).End(xlUp).Row temCount = 1 temCountIn = 0 temDianhua = "" temRen = "" For i = 2 To temRowMingxi If CStr(.Cells(i, 2)) = temDingdan And .Cells(i, 20) = temDate Then If UserForm1.LiJiasuihuodan.Value = True Then 'lijia customer If temCountIn = 0 Then lijia.Cells(temCount + 1, 10) = temDingdan lijia.Cells(temCount + 2, 12) = temDate Set rnTem = yilan.Columns(2).Find(What:=.Cells(i, 1)) If Not rnTem Is Nothing Then lijia.Cells(13, 1) = "收货地址:" & yilan.Cells(rnTem.Row, 25) temDianhua = yilan.Cells(rnTem.Row, 27) temRen = yilan.Cells(rnTem.Row, 26) lijia.Cells(14, 1) = "收货人:" & temRen & " 电话:" & temDianhua lijia.Cells(15, 1) = "备注:" & yilan.Cells(rnTem.Row, 29) Else MsgBox "在一览表中未找到客户信息" End If End If If temCountIn > 5 Then MsgBox "丽家目前最大允许6条,之后的条目不再读取。" Exit For End If lijia.Cells(temCount + temCountIn + 4, 1) = temCountIn + 1 lijia.Cells(temCount + temCountIn + 4, 2) = .Cells(i, 6) lijia.Cells(temCount + temCountIn + 4, 3) = .Cells(i, 5) lijia.Cells(temCount + temCountIn + 4, 4) = .Cells(i, 7) ' lijia.Cells(temCount + temCountIn + 4, 5) = .Cells(i, 30) lijia.Cells(temCount + temCountIn + 4, 6) = .Cells(i, 29) lijia.Cells(temCount + temCountIn + 4, 7) = .Cells(i, 8) lijia.Cells(temCount + temCountIn + 4, 8) = .Cells(i, 13) lijia.Cells(temCount + temCountIn + 4, 9) = .Cells(i, 10) lijia.Cells(temCount + temCountIn + 4, 10) = .Cells(i, 14) lijia.Cells(temCount + temCountIn + 4, 11) = .Cells(i, 18) lijia.Cells(temCount + temCountIn + 4, 12) = .Cells(i, 21) temCountIn = temCountIn + 1 If .Cells(i, 28) = "※" Then temRowHuayan = huayan.Cells(1048576, 1).End(xlUp).Row huayan.Cells(temRowHuayan + 1, 1) = .Cells(i, 20) huayan.Cells(temRowHuayan + 1, 2) = .Cells(i, 6) huayan.Cells(temRowHuayan + 1, 3) = .Cells(i, 7) huayan.Cells(temRowHuayan + 1, 4) = .Cells(i, 10) huayan.Cells(temRowHuayan + 1, 5) = .Cells(i, 18) huayan.Cells(temRowHuayan + 1, 6) = .Cells(i, 1) huayan.Cells(temRowHuayan + 1, 7) = lijia.Cells(13, 1) huayan.Cells(temRowHuayan + 1, 8) = temRen huayan.Cells(temRowHuayan + 1, 9) = temDianhua End If lijia.Select lijia.Cells(1, 1).Select Else 'no lijia customer suihuo.Cells(temCount + temCountIn + 3, 2) = .Cells(i, 27) .Range(.Cells(i, 5), .Cells(i, 7)).Copy suihuo.Cells(temCount + temCountIn + 3, 3).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False suihuo.Cells(temCount + temCountIn + 3, 6) = .Cells(i, 29) suihuo.Cells(temCount + temCountIn + 3, 7) = .Cells(i, 8) suihuo.Cells(temCount + temCountIn + 3, 8) = .Cells(i, 10) suihuo.Cells(temCount + temCountIn + 3, 9) = .Cells(i, 8) * .Cells(i, 30) suihuo.Cells(temCount + temCountIn + 3, 10) = .Cells(i, 8) * .Cells(i, 31) suihuo.Cells(temCount + temCountIn + 3, 11) = .Cells(i, 18) suihuo.Cells(temCount + temCountIn + 3, 12) = .Cells(i, 21) suihuo.Cells(temCount + temCountIn + 3, 13) = .Cells(i, 32) suihuo.Cells(temCount + temCountIn + 3, 1) = temCountIn + 1 If temCountIn = 0 Then suihuo.Cells(temCount, 7) = temDingdan suihuo.Cells(temCount, 2) = .Cells(i, 1) suihuo.Cells(temCount, 12) = temDate Set rnTem = yilan.Columns(2).Find(What:=.Cells(i, 1)) If Not rnTem Is Nothing Then ' suihuo.Cells(temCount + 20, 3) = yilan.Cells(rnTem.Row, 25) ' suihuo.Cells(temCount + 21, 3) = yilan.Cells(rnTem.Row, 26) ' suihuo.Cells(temCount + 21, 4) = yilan.Cells(rnTem.Row, 27) suihuo.Cells(temCount + 20, 1) = "收货地址:" & yilan.Cells(rnTem.Row, 25) temDianhua = yilan.Cells(rnTem.Row, 27) temRen = yilan.Cells(rnTem.Row, 26) suihuo.Cells(temCount + 21, 1) = "收货人:" & temRen & " 电话:" & temDianhua suihuo.Cells(temCount + 22, 1) = "备注:" & yilan.Cells(rnTem.Row, 29) Else MsgBox "在一览表中未找到客户信息" End If End If If .Cells(i, 28) = "※" Then temRowHuayan = huayan.Cells(1048576, 1).End(xlUp).Row huayan.Cells(temRowHuayan + 1, 1) = .Cells(i, 20) huayan.Cells(temRowHuayan + 1, 2) = .Cells(i, 6) huayan.Cells(temRowHuayan + 1, 3) = .Cells(i, 7) huayan.Cells(temRowHuayan + 1, 4) = .Cells(i, 10) huayan.Cells(temRowHuayan + 1, 5) = .Cells(i, 18) huayan.Cells(temRowHuayan + 1, 6) = .Cells(i, 1) huayan.Cells(temRowHuayan + 1, 7) = suihuo.Cells(temCount + 20, 1) huayan.Cells(temRowHuayan + 1, 8) = temRen huayan.Cells(temRowHuayan + 1, 9) = temDianhua End If If temCountIn < 14 Then temCountIn = temCountIn + 1 Else temCountIn = 0 temCount = temCount + 25 suihuo.Rows("1:25").Copy suihuo.Cells(temCount, 1) suihuo.Range(suihuo.Cells(4, 1), suihuo.Cells(18, 13)).ClearContents suihuo.Range(suihuo.Cells(1, 2), suihuo.Cells(1, 5)).ClearContents suihuo.Range(suihuo.Cells(1, 7), suihuo.Cells(1, 9)).ClearContents ' suihuo.Range(suihuo.Cells(21, 3), suihuo.Cells(21, 12)).ClearContents ' suihuo.Cells(22, 3).ClearContents ' suihuo.Range(suihuo.Cells(22, 4), suihuo.Cells(22, 8)).ClearContents ' suihuo.Cells(1, 12) = ClearContents suihuo.Cells(23, 1) = "" '"备注:" suihuo.Cells(21, 1) = "收货地址:" suihuo.Cells(22, 1) = "收货人(电话)::" End If suihuo.Select suihuo.Cells(1, 1).Select End If End If Next End With Application.ScreenUpdating = True End Sub Sub shengchengchuku(temDate, temDingdan) 'temDate = "2021.04.23" 'temDingdan = "202104-SY-01" Application.ScreenUpdating = False With mingxi chuku.Range(chuku.Cells(4, 1), chuku.Cells(11, 8)).ClearContents chuku.Range(chuku.Cells(2, 3), chuku.Cells(2, 6)).ClearContents chuku.Cells(1, 8).ClearContents chuku.Cells(2, 8).ClearContents temRowchuku = chuku.Cells(1048576, 2).End(xlUp).Row If temRowchuku > 13 Then chuku.Rows("14:" & temRowchuku).Delete temRowMingxi = .Cells(1048576, 1).End(xlUp).Row temCount = 1 temCountIn = 0 For i = 2 To temRowMingxi If CStr(.Cells(i, 2)) = temDingdan And .Cells(i, 19) = temDate Then chuku.Cells(temCount, 8) = temDingdan chuku.Cells(temCount + 1, 3) = .Cells(i, 1) chuku.Cells(temCount + 1, 8) = temDate .Range(.Cells(i, 6), .Cells(i, 10)).Copy chuku.Cells(temCount + temCountIn + 3, 2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False .Range(.Cells(i, 13), .Cells(i, 14)).Copy chuku.Cells(temCount + temCountIn + 3, 7).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False chuku.Cells(temCount + temCountIn + 3, 1) = temCountIn + 1 If temCountIn < 7 Then temCountIn = temCountIn + 1 Else temCountIn = 0 temCount = temCount + 13 chuku.Rows("1:13").Copy chuku.Cells(temCount, 1) chuku.Range(chuku.Cells(temCount + 3, 2), chuku.Cells(temCount + 10, 8)).ClearContents chuku.Cells(temCount, 8).ClearContents chuku.Range(chuku.Cells(temCount + 1, 3), chuku.Cells(temCount + 1, 6)).ClearContents chuku.Cells(temCount + 1, 8).ClearContents End If End If Next chuku.Select chuku.Cells(1, 1).Select End With Application.ScreenUpdating = True End Sub Sub shengchengzhishipiao() Application.ScreenUpdating = False temDate = "2021.4.22" temDingdan = "202104-SY-01" With mingxi zhishi.Range(zhishi.Cells(4, 3), zhishi.Cells(6, 3)).ClearContents zhishi.Range(zhishi.Cells(4, 5), zhishi.Cells(6, 5)).ClearContents zhishi.Range(zhishi.Cells(4, 7), zhishi.Cells(6, 7)).ClearContents zhishi.Range(zhishi.Cells(3, 3), zhishi.Cells(3, 4)).ClearContents zhishi.Range(zhishi.Cells(3, 6), zhishi.Cells(3, 7)).ClearContents zhishi.Range(zhishi.Cells(7, 3), zhishi.Cells(7, 7)).ClearContents zhishi.Cells(8, 3).ClearContents zhishi.Cells(8, 4).ClearContents zhishi.Cells(8, 5).ClearContents temRowZhishi = zhishi.Cells(1048576, 2).End(xlUp).Row If temRowZhishi > 10 Then zhishi.Range(zhishi.Cells(9, 1), zhishi.Cells(temRowZhishi, 7)).Delete Set rnTem = .Columns(18).Find(What:=temDate) If Not rnTem Is Nothing Then temCount = 0 temAdress = rnTem.Address Do zhishi.Rows(temCount * 10 + 1 & ":" & temCount * 10 + 10).Copy zhishi.Cells((temCount + 1) * 10 + 1, 1) temRowMingxi = rnTem.Row zhishi.Cells(temCount * 10 + 3, 3) = .Cells(temRowMingxi, 6) zhishi.Cells(temCount * 10 + 3, 6) = .Cells(temRowMingxi, 1) zhishi.Cells(temCount * 10 + 4, 3) = .Cells(temRowMingxi, 9) ' zhishi.Cells(temCount * 10 + 5, 3) = .Cells(temRowMingxi, 7) zhishi.Cells(temCount * 10 + 6, 3) = .Cells(temRowMingxi, 18) zhishi.Cells(temCount * 10 + 7, 3) = "备注" zhishi.Cells(temCount * 10 + 8, 3) = temChupiao ' zhishi.Cells(temCount * 10 + 4, 5) = Format(Date, "yyyy.mm.dd") ' zhishi.Cells(temCount * 10 + 5, 5) = Format(Date, "yyyy.mm.dd") zhishi.Cells(temCount * 10 + 6, 5) = .Cells(temRowMingxi, 21) zhishi.Cells(temCount * 10 + 8, 5) = Format(Date, "yyyy.mm.dd") zhishi.Cells(temCount * 10 + 4, 7) = .Cells(temRowMingxi, 7) ' zhishi.Cells(temCount * 10 + 5, 7) = .Cells(temRowMingxi, 11) ' zhishi.Cells(temCount * 10 + 6, 7) = .Cells(temRowMingxi, 11) zhishi.Cells(temCount * 10 + 8, 7) = .Cells(temRowMingxi, 11) temCount = temCount + 1 Set rnTem = .Columns(18).FindNext(after:=rnTem) Loop While Not rnTem Is Nothing And temAdress <> rnTem.Address End If End With Application.ScreenUpdating = True End Sub Sub copyToMingXi() With dingdan temRowDingdan = .Cells(rowDingdan, 3).End(xlUp).Row If temRowDingdan > 2 Then temRowMingxi = mingxi.Cells(1048576, 1).End(xlUp).Row j = 1 For i = 3 To temRowDingdan If .Cells(i, 7) <> "" Or .Cells(i, 5) <> "" Then If .Cells(i, 7) <> "" And .Cells(i, 12) <> "" Then .Cells(i, 5) = Application.WorksheetFunction.RoundUp(.Cells(i, 7) / .Cells(i, 12), 0) Else .Cells(i, 7) = Application.WorksheetFunction.RoundUp(.Cells(i, 5) * .Cells(i, 12), 0) End If mingxi.Cells(temRowMingxi + 1, 1) = .Cells(1, 2) mingxi.Cells(temRowMingxi + 1, 2) = .Cells(1, 5) mingxi.Cells(temRowMingxi + 1, 3) = .Cells(1, 11) .Range(.Cells(i, 2), .Cells(i, 12)).Copy mingxi.Cells(temRowMingxi + 1, 5) mingxi.Cells(temRowMingxi + 1, 22) = .Cells(i, 14) mingxi.Cells(temRowMingxi + 1, 27) = .Cells(i, 13) mingxi.Cells(temRowMingxi + 1, 4) = j .Range(.Cells(i, 15), .Cells(i, 19)).Copy mingxi.Cells(temRowMingxi + 1, 28) temRowMingxi = temRowMingxi + 1 j = j + 1 End If Next End If End With End Sub Sub ShouzhuDingdan(temDingdan) Application.ScreenUpdating = False With dingdan .Range(.Cells(3, 2), .Cells(rowDingdan, 20)).ClearContents Set rnTem = yilan.Columns(2).Find(What:=temDingdan) If Not rnTem Is Nothing Then temRowDingdan = 3 temAdress = rnTem.Address Do temRowYilan = rnTem.Row .Cells(temRowDingdan, 2) = yilan.Cells(temRowYilan, 5) .Cells(temRowDingdan, 3) = yilan.Cells(temRowYilan, 6) .Cells(temRowDingdan, 4) = yilan.Cells(temRowYilan, 7) .Cells(temRowDingdan, 6) = yilan.Cells(temRowYilan, 15) .Cells(temRowDingdan, 10) = yilan.Cells(temRowYilan, 17) .Cells(temRowDingdan, 12) = yilan.Cells(temRowYilan, 13) .Cells(temRowDingdan, 13) = yilan.Cells(temRowYilan, 4) .Cells(temRowDingdan, 14) = yilan.Cells(temRowYilan, 23) .Cells(temRowDingdan, 15) = yilan.Cells(temRowYilan, 24) .Cells(temRowDingdan, 16) = yilan.Cells(temRowYilan, 11) .Cells(temRowDingdan, 17) = yilan.Cells(temRowYilan, 20) .Cells(temRowDingdan, 18) = yilan.Cells(temRowYilan, 21) .Cells(temRowDingdan, 19) = yilan.Cells(temRowYilan, 28) temRowDingdan = temRowDingdan + 1 Set rnTem = yilan.Columns(2).FindNext(after:=rnTem) Loop While Not rnTem Is Nothing And temAdress <> rnTem.Address .Range(.Cells(3, 11), .Cells(temRowDingdan - 1, 11)).FormulaR1C1 = "=RC[-1]*RC[-4]" Else MsgBox "未找到相关数据。" End If End With Application.ScreenUpdating = True End Sub 'stKehu = kehu Sub MenuShow() On Error Resume Next UserForm1.Show 0 End Sub Function dateFormat(temStr) If IsDate(temStr) Then dateFormat = Format(temStr, "yyyy.mm.dd") Else dateFormat = temStr End If End Function Sub abc() temDate = Date If IsDate(temDate) Then MsgBox dateFormat(temDate) Else MsgBox temDate End If Set wsDingdan = dingdan Set wsYilan = yilan Set wsMingxi = mingxi Set wsZhishi = zhishi Set wsChuku = chuku Set wsChukuhou = chukuhou Set wsSuihuo = suihuo Set wsLijiaSuihuo = lijiasuihuo Set wsHuayan = huayan Set wsData = data MsgBox Date Debug.Print wsDingdan.Name, wsYilan.Name, wsMingxi.Name, wsZhishi.Name, wsData.Name End Sub Sub setFormatMingxi(temRn As Range) temRn.Parent.Select temRn.Select Selection.Font.Size = 11 Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With End Sub