반응형
Excel/VBA: 단일 셀을 인수로 전달
사용자 지정 VBA 함수에서 단일 셀 인수만 허용하도록 하고 싶습니다.올바른 방법은 무엇입니까?
- 통과하다
myCell as Cell
또는:
- 통과하다
myRange as Range
기본적으로 왼쪽 상단 셀을 얻습니까?
셀을 두 개 이상 선택하면 기능이 종료됩니다.
Function AcceptOneCell(rng As Range)
If (rng.Cells.Count > 1) Then
AcceptOneCell = "Only allow 1 cell"
Exit Function
End If
' your code here
End Function
사용자가 여러 열과 행으로 구성된 범위를 입력한다고 가정할 때, 질문에서 의미한 것이라면 다음 검사를 수행하여 함수를 종료할 수 있습니다.
Function myFunction(ByRef myCell as Range) as SomeDataType_of_your_choice
Dim numRow as Long, numCol as Long
numRow = myCell.Columns.Count
numCol = myCell.Rows.Count
If numRow > 1 or numCol > 1 Then
MsgBox "Only one cell is accepted"
Exit Function
Else
'-- do other stuff you want to do here
End If
End Function
topLeftValue = myRange.Cells(1, 1).Value
1셀 이상의 범위를 통과하더라도 진행하기 위해 아래의 범위 확인을 자체 기능/서브 내에 추가하였습니다.이렇게 하면 여러 셀이 있는 범위가 함수로 전달되는 경우 맨 위 왼쪽에 있는 셀을 강제로 선택할 수 있습니다.이것은 현재 기능을 대신 종료하는 다른 답변의 대체 경로입니다.
Sub DoSomethingWithCells(StartCell As Range)
'Ensure that only the first cell of range is selected
If (StartCell.Cells.Count > 1) Then
'Select only the first cell
StartCell = StartCell.Cells(1, 1).Address
End If
'Do whatever you need to do here
End Sub
numRow = myCell.Columns.Count
numCol = myCell.Rows.Count
그래야 한다
numColum = myCell.Columns.Count
numRow = myCell.Rows.Count
언급URL : https://stackoverflow.com/questions/14479627/excel-vba-passing-a-single-cell-as-argument
반응형
'programing' 카테고리의 다른 글
자동 호출 기능 전 세미콜론? (0) | 2023.10.18 |
---|---|
MySQL 월별/년 단위 반복 이벤트 (0) | 2023.10.18 |
Oracle sql developer 3.2에서 sql 워크시트 표시 전환 방법 (0) | 2023.10.18 |
주어진 코드의 복잡도 결정 (0) | 2023.10.18 |
정의되지 않은 문자열을 빈 문자열로 바꾸는 방법 (0) | 2023.10.18 |