หวังว่าใครบางคนอาจมีเบาะแสหากมีสิ่งใดที่ฉันสามารถทำได้เพื่อแก้ไขปัญหาที่ฉันมี การเพิ่มโค้ดที่ฉันใช้อาจเป็นเรื่องยากเนื่องจากมีขนาดใหญ่มาก
ฉันมีตารางที่มีวันที่ตามปฏิทินในคอลัมน์แรก ทั้งหมดอยู่ในรูปแบบ วว/ดด/ปปปป ใน VBA ฉันต้องการค้นหาวันที่และค้นหาหมายเลขแถวภายในปฏิทินโดยใช้สิ่งต่อไปนี้
FirstRow = Workbooks(WorkbookSelected.Name).Sheets("Tables").Columns(1).Find(ConfirmedDate, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, LookAt:=xlWhole).Row
วันที่ที่ยืนยันจะถูกจัดเก็บเป็นตัวแปรวันที่ ซึ่งนำมาจากปฏิทินเช่นกัน แต่จะมีวันเพิ่มเข้ามา ฉันกำลังค้นหาในสมุดงานสองเล่มที่แตกต่างกันเพื่อค้นหา FirstRow หากสมุดงานทั้งสองอยู่ในแอปพลิเคชัน/อินสแตนซ์เดียวกันของ Excel โค้ดนี้จะทำงานได้ดี
แต่หากฉันเปิดสมุดงานที่ 2 ในอินสแตนซ์ใหม่ของ Excel มันจะเกิดข้อผิดพลาดเนื่องจากไม่พบวันที่ มีบางอย่างเกิดขึ้นกับวันที่ในแอปพลิเคชันที่ 2 ถ้าฉันใช้ format(ConfirmedDate, "dd/mm/yyyy")
มันจะพบมันในสมุดงานเล่มที่ 2 แต่รหัสนั้นจะใช้งานไม่ได้ในสมุดงานต้นฉบับ รหัสที่คล้ายกันกับด้านบน แต่เพียงอ้างอิงอินสแตนซ์ของ Excel ที่ต้องพิจารณา ฉันได้รับ Runtime Error 91 เมื่อไม่พบ
FirstRow = ExcelInstanceSelected.Workbooks(WorkbookSelected.Name).Sheets("Tables").Columns(1).Find(ConfirmedDate, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, LookAt:=xlWhole).Row
FirstRow = ExcelInstanceSelected2.Workbooks(2ndWorkbookSelected.Name).Sheets("Tables").Columns(1).Find(ConfirmedDate, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, LookAt:=xlWhole).Row
ฉันกำลังพยายามหาวิธีค้นหาวันที่ในปฏิทินโดยไม่คำนึงว่าฉันใช้แอปพลิเคชัน Excel ใด ฉันได้ลองเปิดสมุดงานโดยตั้งค่าท้องถิ่นเป็นจริง (ไม่ได้ช่วยอะไร) ฉันได้ลองใช้รูปแบบ cdate, cdbl, lookin:=xlformulas แล้ว ไม่มีอะไรจะใช้ได้กับทั้งสองสมุดงาน
มันทำให้ฉันแทบบ้า ฉันสามารถสรุปได้ว่า .find ในสมุดงานเล่มที่ 2 กำลังเปลี่ยนรูปแบบของ ConfirmedDate ที่เก็บไว้เป็นรูปแบบสหรัฐอเมริกา m/dd/yyyy ฉันหาวิธีให้แน่ใจว่าวันที่ทั้งสองสามารถจัดรูปแบบเป็น dd/mm/yyyy เกี่ยวกับวิธีการเริ่มต้นได้
ขอบคุณมากสำหรับความช่วยเหลือใด ๆ
เซล
Workbooks(WorkbookSelected.Name).Sheets
แทนที่จะเป็นเพียงWorkbookSelected.Sheets
- person K.Dᴀᴠɪs   schedule 09.02.2020SUM(1+2) = 3
แทนที่จะเป็น3 = 3
คุณไม่จำเป็นต้องใช้ฟังก์ชัน (Workbooks()
) เพื่อรับวัตถุสมุดงาน เมื่อคุณมีวัตถุสมุดงานอยู่แล้ว - person K.Dᴀᴠɪs   schedule 09.02.20201
=1-Jan-1900
หรือ1-Jan-1904
VBA มีประเภทข้อมูล วันที่ และการค้นหาวันที่ในแผ่นงาน Excel อาจเป็นเรื่องยาก ดูที่ ช่วง Excel VBAค้นหาวันที่ที่เป็นสูตร - person Ron Rosenfeld   schedule 09.02.2020