Page 1 of 1
สามารถปรับสูตร หรือใช้สูตรอะไรทดแทนได้
Posted: Thu Jan 14, 2021 2:50 pm
by wisitsakbenz
เรียนอาจารย์ครับ
เขียนสูตรด้านล่างแล้ว โปรแกรมประมวลผลช้ามากครับ
สูตร
=IFERROR(VLOOKUP(InputHN,[ListHNSVNH.xlsx]ListHNSVH1!$A:$G,6,0),
IFERROR(VLOOKUP(InputHN,[ListHNSVNH.xlsx]ListHNSVH2!$A:$G,6,0),
IFERROR(VLOOKUP(InputHN,[ListHNSVNH.xlsx]ListHNSNH1!$A:$G,6,0),
IFERROR(VLOOKUP(InputHN,[ListHNSVNH.xlsx]ListHNSNH2!$A:$G,6,0),""))))
สามารถปรับสูตร หรือใช้สูตรอะไรทดแทนได้หรือไม่ครับ ขอบคุณครับ
ไฟล์ ListHNSVNH มีขนาด 60M ครับ
Re: สามารถปรับสูตร หรือใช้สูตรอะไรทดแทนได้
Posted: Thu Jan 14, 2021 9:07 pm
by snasui

กรุณาเข้าไป Update Field ใน Profile ให้ระบุถึง Version ของ Excel ที่ใช้จริงด้วยตาม Link นี้ครับ
https://snasui.com/viewtopic.php?f=6&p=103177#p103177
จากตัวอย่างสูตรที่ยกมา ให้เปลี่ยนช่วงเซลล์ในสูตรให้เป็นช่วงเซลล์ตามที่มีข้อมูลจริงหรือเผื่อไว้แค่เท่าที่ข้อมูลจะขยายไปถึง ไม่ควรเลือกทั้งคอลัมน์ครับ
Re: สามารถปรับสูตร หรือใช้สูตรอะไรทดแทนได้
Posted: Fri Jan 15, 2021 8:33 am
by wisitsakbenz
เรียน อาจารย์ snasui ผมลองทำตามที่อาจารย์แนะนำแล้ว
จะมีปัญหาตอน Clear ค่า โปรแกรมจะประมวลผลนานมาก
หมายเหตุ :
1.ที่ยกมาคือบางส่วนนะครับ
2.ขนาดไฟล์ ListHNSVNH1 มีขนาด 150M แต่ละ sheet จะมีข้อมูลคนไข้ประมาณ 700,000 Row
อาจารย์พอมีวิธี หรือปรับสูตร แนะนำอย่างไรบ้างครับ ขอบคุณครับ
Code: Select all
Private Sub CommandButton1_Click()
With Worksheets("Input")
.Range("InputName").Formula = "=IFERROR(VLOOKUP(InputHN,[ListHNSVNH1.xlsx]SVH00!$A$2:$G$10,6,0),IFERROR(VLOOKUP(InputHN,[ListHNSVNH1.xlsx]SVH01!$A$2:$G$10,6,0),IFERROR(VLOOKUP(InputHN,[ListHNSVNH1.xlsx]SVH10!$A$2:$G$10,6,0),IFERROR(VLOOKUP(InputHN,[ListHNSVNH1.xlsx]SNH01!$A$2:$G$10,6,0),IFERROR(VLOOKUP(InputHN,[ListHNSVNH1.xlsx]SNH10!$A$2:$G$10,6,0),"""")))))"
.Range("InputDOB").Formula = "=IFERROR(VLOOKUP(InputHN,[ListHNSVNH1.xlsx]SVH00!$A$2:$G$10,7,0),IFERROR(VLOOKUP(InputHN,[ListHNSVNH1.xlsx]SVH01!$A$2:$G$10,7,0),IFERROR(VLOOKUP(InputHN,[ListHNSVNH1.xlsx]SVH10!$A$2:$G$10,7,0),IFERROR(VLOOKUP(InputHN,[ListHNSVNH1.xlsx]SNH01!$A$2:$G$10,7,0),IFERROR(VLOOKUP(InputHN,[ListHNSVNH1.xlsx]SNH10!$A$2:$G$10,7,0),"""")))))"
End With
End Sub
Re: สามารถปรับสูตร หรือใช้สูตรอะไรทดแทนได้
Posted: Fri Jan 15, 2021 11:49 am
by snasui

ตัวอย่าง Code ครับ
Code: Select all
Dim sb As Workbook
Dim sh As Worksheet
Dim rngA As Range
Dim r As Range
Dim strSb As String
Dim hn As String
Dim f As Boolean
strSb = "C:\ListHNSVNH1.xlsx"
Set sb = Workbooks.Open(Filename:=strSb, UpdateLinks:=False, ReadOnly:=True)
f = False
With ThisWorkbook.Worksheets("Input")
hn = .Range("b3").Value
For Each sh In sb.Worksheets
Set rngA = sh.Range("a2", sh.Range("a" & sh.Rows.Count).End(xlUp))
For Each r In rngA
If r.Value = hn Then
.Range("b4").Value = r.Offset(0, 5).Value
.Range("b5").Value = r.Offset(0, 6).Value
f = True
Exit For
End If
Next r
If f Then Exit For
Next sh
End With
sb.Close False
เปลี่ยน
"C:\ListHNSVNH1.xlsx" ที่กำหนดให้กับตัวแปร
strSb ให้เป็นตำแหน่งไฟล์ที่ใช้งานจริงครับ
Re: สามารถปรับสูตร หรือใช้สูตรอะไรทดแทนได้
Posted: Fri Jan 15, 2021 3:27 pm
by wisitsakbenz
เรียน อาจารย์ snasui ครับ
ได้แล้วครับอาจารย์ ขอสอบถามเพิ่มเติมครับ
ถ้า file ที่ไว้อยู่ใน shared file ต้องเขียนแบบนี้ป่าวครับ ขอบคุณครับ
Code: Select all
...other code....
strSb = "\\svh-sv-vcifs01\Test\Estimated Form\ListHNSVNH1.xlsx"
...other code....
Re: สามารถปรับสูตร หรือใช้สูตรอะไรทดแทนได้
Posted: Fri Jan 15, 2021 3:33 pm
by snasui

เท่าที่ดูน่าจะใช้ได้เลยครับ
Re: สามารถปรับสูตร หรือใช้สูตรอะไรทดแทนได้
Posted: Fri Jan 15, 2021 3:53 pm
by wisitsakbenz
เรียน อาจารย์ snasui ครับ
error ครับอาจารย์ ขอบคุณครับ
Re: สามารถปรับสูตร หรือใช้สูตรอะไรทดแทนได้
Posted: Fri Jan 15, 2021 4:02 pm
by snasui

คีย์ค่านี้
\\svh-sv-vcifs01\Test\Estimated Form เข้าไปใน Windows Explorer แล้ว Enter สังเกตว่า Windows พาไปยัง Folder นั้นหรือไม่ ถ้าไม่ไปก็แสดงว่าไม่สามารถ Acces เข้าไปได้ ถ้าไปแสดงว่า Access ได้จะต้องเห็นไฟล์ต้นทางวางอยู่ และเมื่อ Access ได้ก็จะต้องเปิดไฟล์นั้นได้ครับ
Re: สามารถปรับสูตร หรือใช้สูตรอะไรทดแทนได้
Posted: Fri Jan 15, 2021 4:05 pm
by wisitsakbenz
เรียน อาจารย์ snasui
ไม่ได้ครับ น่าจะไม่สามารถ Access เข้าไปได้ ขอบคุณครับ