2012-02-27 5 views
3

VBA에는 포인터와 같은 것이 있습니까?VBA의 포인터

나는 엑셀 매크로를 만들고, 칼럼 수를 추적하는 간단한 변수를 원한다. wst.UsedRange.Columns.Count는 필요할 때마다 많은 공간을 차지하므로 last_col과 같은 간단한 이름으로 바꾸고 싶습니다.

+1

당신은 VBA에서 변수를 만들 수 있습니다. – DOK

+2

"wst.UsedRange.Columns.Count는 많은 공간을 차지합니다.": 당신은 무엇을 의미합니까? – assylias

+1

@assylias 아마도 많은 문자가 있습니다. Mark가 그것을 입력 할 때 화면에 많은 공간을 차지합니다. – Graphth

답변

3

하지만 현재 상황에서 유용 (또는 특별한 경우를 넘어 다른 많은) 방식으로, 왜 안

public function ccount() as long 
    ccount = wst.UsedRange.Columns.Count 
end function 

또는 wst.UsedRange.Columns에 전역 변수 참조를 설정하고 필요에 따라 var.count을 읽을 수 있습니다.

3

저는 대부분의 경우 UsedRange의 팬이 아닙니다. 다른 매크로가 계속해서 사용할 함수를 만들려면이 구문을 사용하여 실제 값이있는 마지막 열을 찾습니다.

Private Function LastCOL(ws As Worksheet) As Long 
    With ws 
     LastCOL = .Cells.Find("*", .Cells(.Rows.Count, .Columns.Count), _ 
      SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column 
    End With 
End Function 

Private Function LastROW(ws As Worksheet) As Long 
    With ws 
     LastROW = .Cells.Find("*", .Cells(.Rows.Count, .Columns.Count), _ 
      SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Row 
    End With 
End Function 

그런 다음 다른 매크로는 단순히 매크로 시트 참조를 공급하여 호출 할 수 있습니다

Sub RowTest() 
    On Error Resume Next  'in case the sheet is empty 
    LR = LastROW(ActiveSheet) 
    Debug.Print LR 
End Sub 
+0

그러면 완전히 빈 시트가 어떻게 작동합니까? :) – osknows

+0

이것은 기본적인 데모였으며 선호하는 오류 처리 방법을 사용할 수 있습니다. 이것은 간단합니다. 오류를 무시하고 ZERO를 되 찾을 수 있습니다. 그 답은 빈 시트에 맞습니까? 위에 추가되었습니다. –