เติมค่าเริ่มต้นให้กับเซลล์ตามเนื้อหาของเซลล์อื่น


0

เราใช้สเปรดชีตเป็นบัตรลงเวลา เทมเพลตจะถูกเก็บไว้ในเซิร์ฟเวอร์พร้อมลิงก์ไปยังเดสก์ท็อปของแต่ละบุคคล

ฉันพยายามหารหัส VB ​​ที่จะช่วยในการบรรลุ flliwing: เมื่อเซลล์สำหรับชื่อผู้ใช้ (B5) ว่างเปล่ารหัสจะเติมวันที่วันอาทิตย์ถัดไปใน (B7) หลังจากผู้ใช้ป้อนชื่อใน B5 แล้วค่าของ B7 ไม่ควรเปลี่ยน

ถ้าฉันใช้สูตร ( =IF(B5="",TODAY()+8-WEEKDAY(TODAY()),B7)) ใน B7 ฉันต้องเปิดใช้งานการอ้างอิงแบบวงกลมซึ่งไม่เป็นไปตามเทมเพลตของสเปรดชีตจึงทำให้เกิดข้อผิดพลาดสำหรับทุกคน

Corporate กล่าวว่าแผ่นงานจำเป็นต้องอยู่ใน Excel เนื่องจากซอฟต์แวร์นำเข้า มิฉะนั้นฉันจะใช้ Word และใช้ฟังก์ชัน "CreateDate" เพื่อให้ได้ผลลัพธ์ที่เหมือนกัน

ฉันพยายามเรียนรู้ VB เพื่อทำมัน แต่ฉันหวังว่าผู้เชี่ยวชาญบางคนสามารถช่วยรหัสใน 5 นาที แบนและให้ฉันตัดมัน


ดังนั้นเริ่มแรกเมื่อคุณเปิดสเปรดชีตเป็นครั้งแรกเซลล์ทั้งหมดในคอลัมน์ B7 จะมีวันอาทิตย์ถัดไป ถูกต้องหรือไม่
Prasanna

คำตอบ:


0

คุณสามารถใช้ขั้นตอนAuto_Openซึ่งจะดำเนินการโดยอัตโนมัติทุกครั้งที่เปิดเวิร์กบุ๊ก เริ่มตัวแก้ไข VBA ( ALT+ F11) แทรกโมดูล VBA ใหม่และคัดลอกโค้ดด้านล่าง ปลอดภัยและคุณก็พร้อมที่จะไป

โค้ดมีลักษณะคล้ายกับสูตรที่คุณมีอยู่แล้ว:

Sub Auto_Open()
    Const Sheetname = "Sheet1"
    Const NameCell = "B5"
    Const DateCell = "B7"

    If IsEmpty(Worksheets(Sheetname).Range(NameCell).Value) Then
        Worksheets(Sheetname).Range(DateCell).Value = Date + 8 - Weekday(Date)
    End If
End Sub
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.