반응형
표에서 헤더 이름 및 행 번호로 Excel 셀 참조
테이블 헤더 이름과 행 번호를 VBA로 사용하여 엑셀 테이블의 셀을 참조하려고 합니다.
어떻게 해야 하나요?
예를 들어, 다음과 같은 것이 있습니다.
Dim tb As ListObject
'assumes Table is the first one on the ActiveSheet
Set tb = ActiveSheet.ListObjects(1)
MsgBox tb.DataBodyRange.Cells(2, tb.ListColumns("header4").Index)
더 짧은 대답은 다음과 같습니다.
MsgBox [MyTable].Cells(2, [MyTable[MyColumn]].Column)
훨씬 더 깨끗하고 쉽습니다!
이 방법을 사용하지 말아야 할 이유가 있습니까?
ThisWorkbook.Worksheets("MyWksht").Range("TableName[ColumnTitle]").Cells(RowNumber)
제 생각에 가장 간단한 답인 것 같습니다.
제가 보기에 @Salam Morcos 솔루션은 적절한 답변을 제공하지 않을 것 같습니다.테이블이 셀에서 시작되는 경우A2
진술서[MyTable[FirstColumnName]].Column
값은 2입니다. 적절한 솔루션은 다음과 같습니다.
MsgBox [MyTable].Cells(2, [MyTable].Column-[MyTable[MyColumn]].Column + 1)
이것처럼 간단합니다.열 이름으로 호출하면 해당 범위에 대해 열 인덱스가 1이 되므로 다음과 같습니다.
msgbox ActiveSheet.ListObjects(1).ListColumns("header4").DataBodyRange(2,1).value
짧게 쓰고 싶은 경우:
[MyTable[header4]].Rows(2)
훨씬 단순하고 역동적입니다.
ThisWorkbook.Worksheets("WorkSheet_Name").Range("Table_Name").Rows(Table_row_number).Select
저는 당신이 원하는 값을 반환하기 위해 다음과 같이 사용할 수 있는 기능을 만들었습니다.
사용 예: GetTableValue(테이블 이름, "ID", 3, "header4")
Function GetTableValue( _
ByRef table As ListObject, _
ByVal columnNameForKeyValue As String, _
ByVal keyValue As Variant, _
ByVal columNameForReturnValue As String _
) As Variant
Dim rowIndex As LongPtr
Dim columnIndex As LongPtr
On Error GoTo ErrorHandling
rowIndex = Application.Match(keyValue,
table.ListColumns(columnNameForKeyValue).DataBodyRange, 0)
columnIndex = table.ListColumns(columNameForReturnValue).Index
GetTableValue = table.DataBodyRange.Cells(rowIndex, columnIndex).value
Exit Function
ErrorHandling:
GetTableValue = "Error: Review inputs"
End Function
언급URL : https://stackoverflow.com/questions/18811431/refer-to-excel-cell-in-table-by-header-name-and-row-number
반응형
'programing' 카테고리의 다른 글
levels<->(이게 무슨 주술입니까? (0) | 2023.06.06 |
---|---|
MySQL: 두 필드를 결합하여 쿼리의 날짜/시간 필드 출력 (0) | 2023.06.06 |
각 고유 값에 대한 발생 횟수 (0) | 2023.06.06 |
npm으로 클린 설치(node_modules 삭제 및 설치)를 수행하려면 어떻게 해야 합니까? (0) | 2023.06.06 |
SQL, Postgres OIDs, 그것들은 무엇이고 왜 유용합니까? (0) | 2023.06.01 |