행과 열의 텍스트가 만나는 경우에만 사용자가 값을 입력 할 수 있습니다. 그렇지 않으면 사용자가 값을 입력 할 수 없습니다. 나머지 셀은 0 또는 null 값을 표시 할 수 있습니다. 나는 VBA에 그것을하고 싶은 이미지는 참조 용으로 만 워크 시트 코드 창에서이 코드행과 열 머리글이 일치 할 때만 셀 값을 입력하십시오.
-6
A
답변
1
장소 :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value <> "" Then '<--| bother only when user inputs values, not when he/she deletes them
If Cells(2, Target.Column) <> Cells(Target.Row, 1) Then '<--| if edited cell row (row 2) and column (column 1) headers don't match then ...
MsgBox "Sorry you must input a cell whose row and column headers match !" '<--|... inform the user...
Application.EnableEvents = False ' <--|... disable events not to have this event handler be called in an infinite loop,,,
Target.ClearContents '<--| clear the invalid userinput
Application.EnableEvents = True '<--| enable back events and have them run for subsequent user inputs
End If
End If
End Sub
0
대체 방법 경우 사용자가 모든 셀을 잠금으로써 항목을 방지 데이터를 입력 할 수 없습니다.
Sub StopEntries()
Dim ws As Worksheet
Dim wb As Workbook
Dim SheetRow As Integer
Dim SheetColumn As Integer
Const ColumnHeaderRow As Integer = 2
Const RowHeaderColumn As Integer = 1
Const NumberOfRows As Integer = 21
Const NumberOfColumns As Integer = 21
Set wb = Workbooks("TestBook.xlsx")
Set ws = wb.Worksheets("LockedSheet")
With ws
' lock all cells
ws.Cells.Locked = True
' unlock cells that meet the condition
For SheetRow = 1 To NumberOfRows
For SheetColumn = 1 To NumberOfColumns
If .Cells(SheetRow + ColumnHeaderRow, RowHeaderColumn) = .Cells(ColumnHeaderRow, SheetColumn + RowHeaderColumn) Then .Cells(SheetRow + ColumnHeaderRow, SheetColumn + RowHeaderColumn).Locked = False
Next SheetColumn
Next SheetRow
' protect the sheet
.Protect UserInterfaceOnly:=True
End With
End Sub
관련 문제
- 1. 열 머리글이 특정 값과 같을 때만 셀을 계산하십시오.
- 2. 열 머리글이 모두 대문자입니다.
- 3. jqgrid에서 마우스를 올리면 열 머리글이 열 머리글이 확장됩니까?
- 4. DataGridView 열 머리글이 스크롤되지 않도록 허용
- 5. C를 사용하여 새 DataGridView 셀 값을 입력하십시오.
- 6. VBA ADODB 행과 열 foreach
- 7. sql을 사용하여 행과 열 모두에 값을 추가하십시오.
- 8. ID가 일치 할 때만 레코드 업데이트
- 9. 조건이 일치 할 때만 PHP에 조건이 포함됩니다.
- 10. 행과 열 값을 사용하여 셀을 찾은 다음 버튼 클릭시 셀 값을 1로 증가하십시오.
- 11. 열 머리글이 있더라도 KeyError가 있습니까?
- 12. 두 시트에서 해당 셀 (같은 행과 열)을 추출하십시오.
- 13. 셀 값을 기준으로 열 복사
- 14. 테이블을 클릭 할 때 특정 행과 열 값을 얻는 방법
- 15. 열 값을 셀 값으로 업데이트하십시오.
- 16. OleDbConnection은 통합 문서가 Excel에서도 열려있을 때만 셀 값을 찾습니다.
- 17. 오라클에서 조회 및 대응하는 열 값을 입력하십시오.
- 18. grep의 행과 문자열 위치가 일치
- 19. 버튼을 클릭하여 값을 입력하십시오.
- 20. 통일 그리드 행과 열
- 21. Excel 행과 열 읽기
- 22. Jquery 선택 값을 입력하십시오.
- 23. FlowLayoutPanel의 행과 열 찾기
- 24. MiniMagick 행과 열
- 25. 테이블의 행과 열 전환
- 26. UITableview의 여러 행과 열
- 27. 행과 열로 셀 값 가져 오기
- 28. 양식에 행과 열 추가
- 29. EmbeddedChart의 행과 열 전환
- 30. SPSS에서 행과 열 선택
이 사이트는 "무료 코드"소스가 아닌 특정 코드 관련 질문 용입니다. [How to ask] (http://stackoverflow.com/help/how-to-ask)를보고 질문에 따라 변경하십시오. –
시트의 모든 셀을 잠그고 열 레이블이 행 레이블과 같은 셀을 잠금 해제 한 다음 시트를 보호하십시오. 코드를 시도했다면 코드를보기 좋을 것입니다. –