ฉันมีไฟล์ Excel ที่ฉันต้องการให้คนกรอกข้อมูลบางอย่าง ฉันต้องการสร้างช่วงของเซลล์ในแถวบังคับถ้าเติมเซลล์แรกในแถวเช่นถ้าเติมเซลล์ A7 แล้วต้องใส่เซลล์ B7-O7 และทำซ้ำตัวเองจนกว่าจะมีเซลล์ ในคอลัมน์ A ที่ไม่ได้กรอกข้อมูล
ฉันลองใช้การเข้ารหัส VBA ไม่ดีที่นี่
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets("Sheet1").Range("A7").Value <> "" And Sheets("Sheet1").Range("B7").Value = "" Or Range("C7").Value = "" Or Range("D7").Value = "" Or Range("E7").Value = "" Or Range("F7").Value = "" Or Range("G7").Value = "" Or Range("H7").Value = "" Or Range("I7").Value = "" Or Range("J7").Value = "" Or Range("K7").Value = "" Or Range("L7").Value = "" Or Range("M7").Value = "" Or Range("N7").Value = "" Or Range("O7").Value = "" Then
MsgBox "Alla celler i en rad måste vara ifyllda för att du skall kunna spara. Kontrollera detta och spara igen."
Cancel = True
ElseIf Sheets("Sheet1").Range("A8").Value <> "" And Sheets("Sheet1").Range("B8").Value = "" Or Range("C8").Value = "" Or Range("D8").Value = "" Or Range("E8").Value = "" Or Range("F8").Value = "" Or Range("G8").Value = "" Or Range("H8").Value = "" Or Range("I8").Value = "" Or Range("J8").Value = "" Or Range("K8").Value = "" Or Range("L8").Value = "" Or Range("M8").Value = "" Or Range("N8").Value = "" Or Range("O8").Value = "" Then
MsgBox "Alla celler i en rad måste vara ifyllda för att du skall kunna spara. Kontrollera detta och spara igen."
Cancel = True
ElseIf Sheets("Sheet1").Range("A9").Value <> "" And Sheets("Sheet1").Range("B9").Value = "" Or Range("C9").Value = "" Or Range("D9").Value = "" Or Range("E9").Value = "" Or Range("F9").Value = "" Or Range("G9").Value = "" Or Range("H9").Value = "" Or Range("I9").Value = "" Or Range("J9").Value = "" Or Range("K9").Value = "" Or Range("L9").Value = "" Or Range("M9").Value = "" Or Range("N9").Value = "" Or Range("O9").Value = "" Then
MsgBox "Alla celler i en rad måste vara ifyllda för att du skall kunna spara. Kontrollera detta och spara igen."
Cancel = True
End If
End Sub
มันทำงานได้จนกว่าฉันจะไปที่:
ElseIf Sheets("Sheet1").Range("A9").Value <> "" And Sheets("Sheet1").Range("B9").Value = "" Or Range("C9").Value = "" Or Range("D9").Value = "" Or Range("E9").Value = "" Or Range("F9").Value = "" Or Range("G9").Value = "" Or Range("H9").Value = "" Or Range("I9").Value = "" Or Range("J9").Value = "" Or Range("K9").Value = "" Or Range("L9").Value = "" Or Range("M9").Value = "" Or Range("N9").Value = "" Or Range("O9").Value = "" Then
MsgBox "Alla celler i en rad måste vara ifyllda för att du skall kunna spara. Kontrollera detta och spara igen."
Cancel = True
End If
จากนั้น MsgBox ก็จะปรากฏขึ้นแม้ว่าจะไม่ได้กรอกข้อมูล A9
ฉันรู้ว่านี่ไม่ใช่วิธีที่ดีที่สุดในการบรรลุสิ่งที่ฉันต้องการ แต่เป็นสิ่งที่ฉันคิดขึ้นมา ข้อเสนอแนะสำหรับรหัสที่ดีกว่า?
Sheets("Sheet1")
เพื่อการอ้างอิงครั้งแรกเท่านั้นซึ่งมีความเสี่ยงมากเนื่องจากผู้อื่นอาจเปลี่ยนบริบท
Sheets("Sheet1").Range("B9").Value = "" Or Range("C9").Value = "" Or Range("D9").Value = "" Or Range("E9").Value = "" Or Range("F9").Value = "" Or Range("G9").Value = "" Or Range("H9").Value = "" Or Range("I9").Value = "" Or Range("J9").Value = "" Or Range("K9").Value = "" Or Range("L9").Value = "" Or Range("M9").Value = "" Or Range("N9").Value = "" Or Range("O9").Value = ""
คุณสามารถWorksheetfunction.countif(Sheets("Sheet1").Range("B9:O9"),"=")=0