:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

ต้องการเพิ่มช่องค้นหา อีก 2 ช่อง VBA

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
buncha2522
Member
Member
Posts: 115
Joined: Thu May 01, 2014 4:09 pm

ต้องการเพิ่มช่องค้นหา อีก 2 ช่อง VBA

#1

Post by buncha2522 »

รบกวนผู้มีพระคุณชี้แนะเรื่องเพิ่ม code ในการค้นหาอีก 2 ช่อง ผมไม่มีความรู้เรื่องนี้ครับ รบกวนช่วยเหลือหน่อยครับ

Option Explicit

Public Sub search_quotation()

Dim quotation_search As String
Dim search_row As Single
Dim quotation_no As String

Dim i As Integer
Dim c As Integer

Const quotation_sheet = "Quotation"
Const quotation_db_sheet = "db_quotation"

Const q_no_col = 1
Const q_date_col = 2

Const q_customercode_col = 3
Const q_contactperson_col = 4
Const q_customeraddr_col = 5

Dim q_item_details_col(1 To 10) As Byte
Dim q_item_amount_col(1 To 10) As Byte
Dim q_item_price_col(1 To 10) As Byte

Const item_details_range = "c"
Const item_amount_range = "d"
Const item_price_range = "e"

'************************************************************************************************

quotation_search = Worksheets(quotation_sheet).quotation_no_txtbox.Value

search_row = 2
quotation_no = Worksheets(quotation_db_sheet).Cells(search_row, q_no_col).Value

Do Until quotation_no = quotation_search

search_row = search_row + 1
quotation_no = Worksheets(quotation_db_sheet).Cells(search_row, q_no_col).Value

Loop

With Worksheets(quotation_sheet)

.Range("f8").Value = Worksheets(quotation_db_sheet).Cells(search_row, q_no_col).Value
.Range("f9").Value = Worksheets(quotation_db_sheet).Cells(search_row, q_date_col).Value
.Range("f10").Value = Worksheets(quotation_db_sheet).Cells(search_row, q_customercode_col).Value


.Range("c12").Value = Worksheets(quotation_db_sheet).Cells(search_row, q_contactperson_col).Value
.Range("c13").Value = Worksheets(quotation_db_sheet).Cells(search_row, q_customeraddr_col).Value


q_item_details_col(1) = 6
q_item_amount_col(1) = 7
q_item_price_col(1) = 8

i = 1
For i = 2 To 10

q_item_details_col(i) = q_item_details_col(i - 1) + 3
q_item_amount_col(i) = q_item_amount_col(i - 1) + 3
q_item_price_col(i) = q_item_price_col(i - 1) + 3

Next i


i = 1
c = 1
For i = 17 To 26

.Range(item_details_range & i).Value = Worksheets(quotation_db_sheet).Cells(search_row, q_item_details_col(c)).Value
.Range(item_amount_range & i).Value = Worksheets(quotation_db_sheet).Cells(search_row, q_item_amount_col(c)).Value
.Range(item_price_range & i).Value = Worksheets(quotation_db_sheet).Cells(search_row, q_item_price_col(c)).Value

c = c + 1

Next i



End With

End Sub

Public Sub search_invoice()

Dim invoice_search As String
Dim search_row As Single
Dim invoice_no As String

Dim i As Integer
Dim c As Integer

Const invoice_sheet = "invoice"
Const invoice_db_sheet = "db_invoice"

Const i_no_col = 1
Const i_date_col = 2

Const i_customercode_col = 3
Const i_contactperson_col = 4
Const i_customeraddr_col = 5

Dim i_item_details_col(1 To 10) As Byte
Dim i_item_amount_col(1 To 10) As Byte
Dim i_item_price_col(1 To 10) As Byte

Const item_details_range = "c"
Const item_amount_range = "d"
Const item_price_range = "e"
Const item_price_range = "f"

'************************************************************************************************

invoice_search = Worksheets(invoice_sheet).invoice_no_txtbox.Value

search_row = 2
invoice_no = Worksheets(invoice_db_sheet).Cells(search_row, i_no_col).Value

Do Until invoice_no = invoice_search

search_row = search_row + 1
invoice_no = Worksheets(invoice_db_sheet).Cells(search_row, i_no_col).Value

Loop

With Worksheets(invoice_sheet)

.Range("f8").Value = Worksheets(invoice_db_sheet).Cells(search_row, i_no_col).Value
.Range("f9").Value = Worksheets(invoice_db_sheet).Cells(search_row, i_date_col).Value
.Range("f10").Value = Worksheets(invoice_db_sheet).Cells(search_row, i_customercode_col).Value
.Range("f11").Value = Worksheets(invoice_db_sheet).Cells(search_row, i_INV_col).Value

.Range("c12").Value = Worksheets(invoice_db_sheet).Cells(search_row, i_contactperson_col).Value
.Range("c13").Value = Worksheets(invoice_db_sheet).Cells(search_row, i_customeraddr_col).Value


i_item_details_col(1) = 6
i_item_amount_col(1) = 7
i_item_price_col(1) = 8

i = 1
For i = 2 To 10

i_item_details_col(i) = i_item_details_col(i - 1) + 3
i_item_amount_col(i) = i_item_amount_col(i - 1) + 3
i_item_price_col(i) = i_item_price_col(i - 1) + 3

Next i


i = 1
c = 1
For i = 17 To 26

.Range(item_details_range & i).Value = Worksheets(invoice_db_sheet).Cells(search_row, i_item_details_col(c)).Value
.Range(item_amount_range & i).Value = Worksheets(invoice_db_sheet).Cells(search_row, i_item_amount_col(c)).Value
.Range(item_price_range & i).Value = Worksheets(invoice_db_sheet).Cells(search_row, i_item_price_col(c)).Value

c = c + 1

Next i



End With

End Sub
buncha2522
Member
Member
Posts: 115
Joined: Thu May 01, 2014 4:09 pm

Re: ต้องการเพิ่มช่องค้นหา อีก 2 ช่อง VBA

#2

Post by buncha2522 »

ขนาดไฟล์ใหญ่จะแนบอย่างไรครับ
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ต้องการเพิ่มช่องค้นหา อีก 2 ช่อง VBA

#3

Post by DhitiBank »

ขนาดไฟล์ต้องไม่เกิน 300 kb ครับ

เพื่อให้ไฟล์เล็กลง ก็อาจต้องลบข้อมูลออกไปบ้าง เช่น รูปภาพ (หากมี) ข้อมูลให้เหลือแค่ตัวอย่างที่พออธิบายได้ว่า ต้องการทำอะไรแต่ติดปัญหาอะไรครับ นอกจากนี้ยังสามารถบันทึกไฟล์เป็นสกุล xlsb และอาจบีบอัดด้วยโปรแกรมพวก WinZip, WinRAR, 7Zip หรืออื่นๆ ได้ด้วยครับ

แล้วก็ควรโพสต์ code ให้อยู่ในรูปแบบ code เพื่อจะอ่านง่ายและคัดลอกเอาไปทดสอบได้ง่ายครับ อ่านกฎและวิธีการทำที่กฎบอร์ดข้อ 5 ด้านบนครับ
Post Reply