2014-01-29 102 views
3
Sub Sample() 

    [A1:A20] = [INDEX(UPPER(A1:A20),)] 

End Sub 

嗨,對於Siddharth Rout提供的上述代碼,是否有可能將20更改爲變量,如工作表中的最後一行?Excel到大寫VBA沒有循環

非常感謝提前。

+0

沒有這個技術,我不認爲。 –

+3

對於[A1:A1048576] = [INDEX(UPPER(A1:A1048576))]' – pnuts

+0

I second @pnuts建議,在編碼方面並沒有太大的性能損失。但是,如果您的目標是特定範圍,請嘗試我的答案。這與Sid所做的一樣,他只是通過'Evaluate'的'[]'快捷鍵進行操作。 :) – Manhattan

回答

2

試試這個:

Sub UpperCase() 

    Dim TargetRng As Range, LastRow As Long 
    LastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row 
    Set TargetRng = Sheet1.Range("A1:A" & LastRow) 

    TargetRng = Evaluate("INDEX(UPPER(" & TargetRng.Address & "),)") 

End Sub 

[]只是爲Evaluate簡寫。使用整個單詞沒有任何處罰,並且可以與VBA一起使用。剛剛嘗試過,它的工作原理。

讓我們知道這是否有幫助。

+0

作品。謝謝! – user3249357

0

唯一的辦法是將可能的最大數量的行。對於Excel 2007會是1048576