首页 > 解决方案 > 根据条件通过 VBA 添加行

问题描述

我使用 VBA 代码向违约者发出信件。数据是按产品维护的。如果 Person1 必须为 product1 付款,它会打印 SHEET2(具有从其他几张表中获取的数据) 如果同一个人必须为 product2 付款,它会打印第二个字母。我正在寻找一个解决方案,如果一个人被重复,代码应该在现有字母中添加一行。

Sub Complaintexporter()

Dim X As Integer
Dim rng As Range


X = 3
Do Until IsEmpty(Sheet1.Cells(X, 29))

If Sheet1.Cells(X, 29) = "Legal Issued to Exporter" And Date - Sheet1.Cells(X, 36) > 21 Then
Sheet9.Cells(1, 1) = Sheet1.Cells(X, 4)
Set rng = Sheet1.Cells(X, 4)
'
'Sheet1.Activate
'    Cells.Find(What:=Sheet9.Cells(1, 1), After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
'        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
'        , SearchFormat:=False).Activate
       'Remarks
        Sheet1.Cells(X, 4).Offset(0, 25).Value = "Pending In FEA Court"
        'FEAD/FEOD
        Sheet1.Cells(X, 4).Offset(0, 24).Value = "FEAD"
        'Details Penalty
        Sheet1.Cells(X, 4).Offset(0, 26).Value = "Pending In FEA Court"
        'year
        Sheet1.Cells(X, 4).Offset(0, 28).Value = "2019"
        'Complaint against
        Sheet1.Cells(X, 4).Offset(0, 29).Value = "Exporter"
        'Complainant/ Officer
        Sheet1.Cells(X, 4).Offset(0, 36).Value = Sheet1.Cells(1, 4)
        'Complaint No
        Sheet1.Cells(X, 4).Offset(0, 27).Value = Sheet2.Cells(1, 2)
        'Date of complaint against exporter
        Sheet1.Cells(X, 4).Offset(0, 34).Value = Date

Sheet4.PrintOut
Sheet5.PrintOut
Sheet6.PrintOut

'Write E-Form in list
Sheet2.Cells(Sheet2.Cells(1, 1), 2) = Sheet9.Cells(1, 1)
'Write Date against E-Form
Sheet2.Cells(Sheet2.Cells(1, 1), 3) = Date
'Increasing Serial No.
Sheet2.Cells(1, 1) = Sheet2.Cells(1, 1) + 1
'Increasing Complaint No.
Sheet2.Cells(1, 2) = Sheet2.Cells(1, 2) + 1

End If
X = X + 1
Loop
MsgBox Sheet2.Cells(12, 9)
End Sub

标签: excelvba

解决方案


推荐阅读