ฉันสร้างฟอร์มใน Excel ที่ย้ายข้อมูลที่ป้อนในแบบฟอร์มไปยังแผ่นงานที่อยู่ติดกันในสมุดงานเดียวกันรวมถึงสมุดงานตัวแทนของฉันที่เส้นทางไฟล์ที่แตกต่างกัน ชิ้นส่วนของจิ๊กซอว์นั้นได้รับการจัดวางให้เข้าที่! ทำงานเหมือนจับใจ!
จากที่นี่ฉันจะสร้างสมุดงานเพิ่มเติมสองเล่มซึ่งเหมือนกับตัวแทนแรก (3 ตัวแทนในทั้งหมด) ซึ่งข้อมูลจะกรองพร้อมกัน
สิ่งที่ฉันไม่สามารถหาได้คือรายละเอียดการถ่ายโอนเพิ่มเติมโดยมีเพียงข้อมูลไปยังสมุดงานหนึ่งเล่มหากชื่อตัวแทนอยู่ในรายการในคอลัมน์ที่ระบุ
ในกรณีของฉันชื่อตัวแทนของฉันอยู่ในคอลัมน์ D เมื่อฉันกดปุ่มส่งฉันต้องการทราบว่ามาโครของฉันจะจดจำชื่อที่ป้อนในเซลล์นั้น ๆ และกำหนดเส้นทางไปยังสมุดงานตัวแทนเฉพาะนั้นซึ่งตรงข้ามกับทั้ง 3 ตัวแทนหรือไม่
ฉันรู้ว่ามันเป็นไปได้ แต่สมองถั่วน้อยของฉันไม่อนุญาตให้ฉันเข้าถึงเซลล์สมองของฉันได้อีกต่อไป! ฉันใหม่ในการเขียนใน VBA ดังนั้นฉันอาจจะหายไปมาก ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม รหัสปัจจุบันที่ฉันมีอยู่ด้านล่าง
Private Sub CommandButton1_Click()
Dim DateReceived As Date
Dim CustomerName As String
Dim AcctNumber As Single
Dim AssignedAgent As String
Dim DisputeCode As Single
Dim ProjRespDate As Date
Dim DocUploadDate As Date
Dim DirectMailForm As Workbook
Worksheets("Form").Select
DateReceived = Range("G3")
CustomerName = Range("G4")
AcctNumber = Range("G5")
AssignedAgent = Range("G6")
DisputeCode = Range("G7")
ProjRespDate = Range("G8")
DocUploadDate = Range("G9")
Worksheets("Data").Select
Worksheets("Data").Range("A1").Select
RowCount = Worksheets("Data").Range("A1").CurrentRegion.Rows.Count
With Worksheets("Data").Range("A1")
.Offset(RowCount, 0) = DateReceived
.Offset(RowCount, 1) = CustomerName
.Offset(RowCount, 2) = AcctNumber
.Offset(RowCount, 3) = AssignedAgent
.Offset(RowCount, 4) = DisputeCode
.Offset(RowCount, 5) = ProjRespDate
.Offset(RowCount, 6) = DocUploadDate
End With
Worksheets("Form").Select
Worksheets("Form").Range("G3").Select
ActiveWorkbook.Save
Range("G3:G9").ClearContents
Set DisputeForm = Workbooks.Open("C:\Users\klx380\Documents\Consolidated_Dispute_Tracker_2014.xls")
Worksheets("Mail").Select
Worksheets("Mail").Range("A1").Select
RowCount = Worksheets("Mail").Range("A1").CurrentRegion.Rows.Count
With Worksheets("Mail").Range("A1")
.Offset(RowCount, 0) = DateReceived
.Offset(RowCount, 1) = CustomerName
.Offset(RowCount, 2) = AcctNumber
.Offset(RowCount, 3) = AssignedAgent
.Offset(RowCount, 4) = DisputeCode
.Offset(RowCount, 5) = ProjRespDate
.Offset(RowCount, 6) = DocUploadDate
End With
DisputeForm.Save
DisputeForm.Close
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If [G9].Value <> "" Then
CommandButton1.Enabled = True
Else: CommandButton1.Enabled = False
End If
End Sub