snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
bounlam
Member
Posts: 7 Joined: Thu Jun 20, 2019 10:21 am
Location: don_dexsula@hotmail.com
#1
Post
by bounlam » Wed Jun 26, 2019 3:31 pm
ลบกวนผู้รู้ครับ
ผมทำตามแล้วครับยอดเยี่อมมากเลยแต่ผมพบปัญหานิดหน่อยครับ
ผมมีข้อมูลใน sheet2 เป็น Hyperlink เมื่อนำข้อมูลมาลายงานใน sheet 1 พบว่าไม้สามาดกดข้อมูลที่เป็น hyperlink ได้ครับ จะแก้ไขอย่างไรครับ
Attachments
test search VBA hyperlink.xlsm
sheet 2 มีข้อมูลเป็น hyperlink (21.1 KiB) Downloaded 17 times
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Wed Jun 26, 2019 7:07 pm
ตัวอย่างการปรับ Code ครับ
Code: Select all
Sub searchMultiplesheets()
Dim r As Range, t As Range
Dim ws As Worksheet, i As Integer, s As String
With Sheets(1)
s = .Range("c1").Value
.Range("a3").Resize(.UsedRange.Rows.Count, .UsedRange.Columns.Count).ClearContents
End With
For Each ws In Worksheets
If ws.Name <> Sheets(1).Name Then
With ws
For Each r In .Range("a2", .Range("a" & .Rows.Count).End(xlUp))
If r.Value & r.Offset(0, 1).Value & _
r.Offset(0, 2).Value & r.Offset(0, 3).Value Like "*" & s & "*" Then
With Sheets(1)
Set t = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0) _
.Resize(1, 4)
r.Resize(1, 4).Copy t
End With
Application.CutCopyMode = False
End If
Next r
End With
End If
Next ws
End Sub
snasui
Site Admin
Posts: 31214 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Thu Jun 27, 2019 6:05 pm
ตัวอย่างการปรับ Code ครับ
Code: Select all
'Other code
With ws
For Each r In .Range("a2", .Range("a" & .Rows.Count).End(xlUp))
If r.Value & r.Offset(0, 1).Value & r.Offset(0, 2).Value & r.Offset(0, 3).Value & _
r.Offset(0, 4).Value & r.Offset(0, 5).Value & r.Offset(0, 5).Value & _
r.Offset(0, 6).Value & r.Offset(0, 7).Value & r.Offset(0, 8).Value & _
r.Offset(0, 9).Value Like "*" & s & "*" Then
With Sheets(1)
Set t = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Resize(1, 10)
r.Resize(1, 10).Copy t
End With
Application.CutCopyMode = False
End If
Next r
End With
'Other code
bounlam
Member
Posts: 7 Joined: Thu Jun 20, 2019 10:21 am
Location: don_dexsula@hotmail.com
#5
Post
by bounlam » Fri Jun 28, 2019 8:48 am
ขอบคุญมากๆครับ..............
รบกวนอืกนิดครับดู code ปุ่ม save ให้หน่อยใน sheet 1 จะเขียนยังไงให้ cell c8 บัญทึกเป็น hyperlink ครับ
puriwutpokin
Guru
Posts: 3801 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#6
Post
by puriwutpokin » Fri Jun 28, 2019 12:03 pm
ลองปรับเป็น
Code: Select all
Private Sub sv_Click()
If Range("f4") = "Import" Then
i = WorksheetFunction.CountA(Worksheets("data").Columns("D:D")) + 1
Worksheets("data").Cells(i, 2).Value = Range("c4").Value
Worksheets("data").Cells(i, 3).Value = Range("c5").Value
Worksheets("data").Cells(i, 4).Value = Range("c6").Value
Worksheets("data").Cells(i, 5).Value = Range("c7").Value
Worksheets("data").Cells(i, 6).Value = Range("d7").Value
Worksheets("data").Cells(i, 7).Value = Range("f7").Value
Worksheets("data").Cells(i, 8).Value = Range("f5").Value
Worksheets("data").Cells(i, 9).Value = Range("f4").Value
Worksheets("data").Cells(i, 10).Value = Range("c8").Value
Else
If Range("f4") = "Export" Then
If Not Worksheets("data2").Columns("G:G").Find(Range("c7"), LookIn:=xlValues) Is Nothing Then
MsgBox "same number can't save"
Else
i = WorksheetFunction.CountA(Worksheets("data2").Columns("D:D")) + 1
Worksheets("data2").Cells(i, 2).Value = Range("c4").Value
Worksheets("data2").Cells(i, 3).Value = Range("c5").Value
Worksheets("data2").Cells(i, 4).Value = Range("c6").Value
Worksheets("data2").Cells(i, 5).Value = Range("c7").Value
Worksheets("data2").Cells(i, 6).Value = Range("d7").Value
Worksheets("data2").Cells(i, 7).Value = Range("f7").Value
Worksheets("data2").Cells(i, 8).Value = Range("f5").Value
Worksheets("data2").Cells(i, 9).Value = Range("f4").Value
Worksheets("data2").Cells(i, 10).Value = Range("c8").Value
End If
End If
End If
ThisWorkbook.Sheets("Index").Hyperlinks.Add Anchor:=Range("C8"), Address:= _
Range("C8").Value, TextToDisplay:=Range("C8").Value
End Sub
bounlam
Member
Posts: 7 Joined: Thu Jun 20, 2019 10:21 am
Location: don_dexsula@hotmail.com
#7
Post
by bounlam » Fri Jun 28, 2019 2:22 pm
save ไปที่ sheet data ได้ครับแต่ข้อมูล c8 จาก sheet index ทีบัญทึกไปยังไม่เป็น Hyperlink เลยครับ
puriwutpokin
Guru
Posts: 3801 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#8
Post
by puriwutpokin » Fri Jun 28, 2019 4:45 pm
ตัวอย่างโค้ดครับ
Code: Select all
Private Sub sv_Click()
If Range("f4") = "Import" Then
i = WorksheetFunction.CountA(Worksheets("data").Columns("D:D")) + 1
Worksheets("data").Cells(i, 2).Value = Range("c4").Value
Worksheets("data").Cells(i, 3).Value = Range("c5").Value
Worksheets("data").Cells(i, 4).Value = Range("c6").Value
Worksheets("data").Cells(i, 5).Value = Range("c7").Value
Worksheets("data").Cells(i, 6).Value = Range("d7").Value
Worksheets("data").Cells(i, 7).Value = Range("f7").Value
Worksheets("data").Cells(i, 8).Value = Range("f5").Value
Worksheets("data").Cells(i, 9).Value = Range("f4").Value
Worksheets("data").Hyperlinks.Add Worksheets("data").Cells(i, 10), Address:= _
Range("c8").Value, TextToDisplay:=Range("c8").Value
Else
If Range("f4") = "Export" Then
If Not Worksheets("data2").Columns("G:G").Find(Range("c7"), LookIn:=xlValues) Is Nothing Then
MsgBox "same number can't save"
Else
i = WorksheetFunction.CountA(Worksheets("data2").Columns("D:D")) + 1
Worksheets("data2").Cells(i, 2).Value = Range("c4").Value
Worksheets("data2").Cells(i, 3).Value = Range("c5").Value
Worksheets("data2").Cells(i, 4).Value = Range("c6").Value
Worksheets("data2").Cells(i, 5).Value = Range("c7").Value
Worksheets("data2").Cells(i, 6).Value = Range("d7").Value
Worksheets("data2").Cells(i, 7).Value = Range("f7").Value
Worksheets("data2").Cells(i, 8).Value = Range("f5").Value
Worksheets("data2").Cells(i, 9).Value = Range("f4").Value
Worksheets("data2").Hyperlinks.Add Worksheets("data2").Cells(i, 10), Address:= _
Range("c8").Value, TextToDisplay:=Range("c8").Value
End If
End If
End If
End Sub
puriwutpokin
Guru
Posts: 3801 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#10
Post
by puriwutpokin » Mon Jul 01, 2019 7:27 pm
bounlam wrote: Mon Jul 01, 2019 10:18 am
สวัสดีครับดูให้หน่อย code ล่าสุดทีให้สามารถ save เป็น hyperlink ได้ครับ แต่ไม้สามารถเปิดไฟล์ได้ครับ
ไม่ได้ระบุเส้นทางเดินของPath และไฟล์ที่จะเปิด Hyperlink ก็หาไม่เจอครับ
ต้องกำหนด ด้วยครับ Path และไฟล์ที่จะเปิดครับ
puriwutpokin
Guru
Posts: 3801 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#12
Post
by puriwutpokin » Thu Jul 04, 2019 11:51 am
bounlam wrote: Thu Jul 04, 2019 11:11 am
ขอบคุญมากๆครับ
ปุ่ม search เวลากดแล้วข้อมูลที่มาโชว์เลขลำดับเป็น #VALUE! แก้ไงครับ
ปรับที่ A13=IF(B13="","",ROWS(A$13:A13)) คัดลอกลงครับ