Page 1 of 1
การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก
Posted: Wed Aug 19, 2015 10:00 pm
by teawssks
สอบถามหน่อยค่ะ
ถ้าเราต้องการให้ ข้อมูลเปลี่ยนไป ตาม ComboBox สามารถเขียนสูตร VBA ได้อย่างไรคะ
ตัวอย่างเช่น
ใน Combobox มีค่า
= Saraburi
= Bangkok
= Lopburi
Sheet มีทั้งหมด 3 sheet คือ
= Saraburi
= Bangkok
= Lopburi
โดยข้อมูลในแต่ละ Sheet ไม่เท่ากัน
เราสามารถโชว์ข้อมูล แต่ละ Sheet โดยการเลือก Combobox ใน Sheet แรก Sheet เดียวได้มั้ยค่ะ
ขอบคุณสำหรับความรู้ดีๆค่ะ
Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก
Posted: Wed Aug 19, 2015 10:39 pm
by snasui

สำหรับการใช้งาน VBA ต้องทำตามกฎข้อ 5 ด้านบนครับ

Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก
Posted: Thu Aug 20, 2015 9:09 am
by teawssks
Private Sub ComboBox1_Change()
If ComboBox1.Value = "Saraburi" Then
Range("A5:F7").Value = "=Formula1"
End If
If ComboBox1.Value = "Bangkok" Then
Range("Bangkok!A5:F7").Value = "=Formula2"
End If
If ComboBox1.Value = "Lopburi" Then
Range("Lopburi!A5:F7").Value = "=Formula2"
End If
End Sub
ที่เขียนได้ Flow ประมานนี้ค่ะ
รบกวนชี้แนะด้วยนะคะ
ขอบคุณมากค่ะ
Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก
Posted: Thu Aug 20, 2015 9:20 am
by snasui

แนบไฟล์มาด้วยครับ อ่านกฎข้อ 5 ด้านบนประกอบด้วยสำหรับการโพสต์ Code ครับ

Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก
Posted: Thu Aug 20, 2015 10:58 am
by teawssks
Code: Select all
Private Sub ComboBox1_Change()
If ComboBox1.Value = "Saraburi" Then
Range("A5:F7").Value = "=Formula1"
End If
If ComboBox1.Value = "Bangkok" Then
Range("Bangkok!A5:F7").Value = "=Formula2"
End If
If ComboBox1.Value = "Lopburi" Then
Range("Lopburi!A5:F7").Value = "=Formula2"
End If
End Sub
รบกวนด้วยนะคะอาจารย์
Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก
Posted: Thu Aug 20, 2015 11:27 am
by snasui

ไม่พบ Code ในไฟล์แนบครับ
การจะแนบ Code มาได้นั้นไฟล์แนบจะต้องมีนามสกุลเป็น .xlsm เป็นอย่างน้อย ไม่ใช่ .xlsx ครับ
Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก
Posted: Thu Aug 20, 2015 11:34 am
by teawssks

ขอโทษนะคะ
รบกวนตรวจสอบอีกทีค่ะ ^^

Re: การใช้ Combobox เพื่อดึงค่าข้าม Sheet แล้วแสดงภายใน Sheet แรก
Posted: Thu Aug 20, 2015 11:49 am
by snasui

Combobox ควรไว้ในชีทสำหรับแสดงผล ไม่ใช่ไว้ในชีท Saraburi ครับ
ตามด้านล่างนี้ถือว่าชีท Saraburi คือชีทที่ใช้ในการแสดงผล มีลำดับการกำหนดค่าดังนี้ครับ
- เข้าเมนู Developer > Design Mode หากไม่มีเมนู Developer ให้กดแป้น Ctrl+T, O > Cusomize Ribbon > ทำเครื่องหมายที่เมนู Developer > OK
- คลิกขวาที่ Combobox > Properties > ตรง ListFillRange คีย์ Saraburi!H1:H3 > คลิกปุ่ม Design Mode เพื่อยกเลิก
- ที่ชีท Saraburi เซลล์ H1:H3 กรอกชื่อชีท Saraburi, Bangkok, Lopburi ตามลำดับ
- ปรับ Code เป็นด้านล่าง
Code: Select all
Private Sub ComboBox1_Change()
Range("a1:f100").Value = Sheets(ComboBox1.Value).Range("A1:F100").Value
End Sub