2016-03-29 55 views
0

所以我有兩個範圍設置在兩個代碼。我的問題是,範圍是特定的。不管我改變多少,我最終都會得到一個錯誤。我的目標是將C1的範圍設置爲一直到數據停止爲止(對於J列相同)。範圍取決於我打開哪個電子表格,因此我希望它能檢測到數據的結束並停在那裏。每個單元總是有數據,所以你不必擔心它們之間的空單元。在Excel中設置正確的列範圍爲Excel

這裏是我的代碼:

Sub Condition() 
     Set Rng = Range("C1:C1822") 
     For Each cell In Rng 

     If cell.Value <> "SB" Then 
      cell.Offset(0, 8).Value = "Introduced by Assemblymember" 
     Else 
     cell.Offset(0, 8).Value = "Introduced by Senator" 

     End If 
     Next 
    End Sub 
'CORRECT LOWER CASE THEN UPPER CASE FIRST LETTER AND OFFSET TO NEW COLUMN 

Sub Change() 
    Dim Rng As Range 
    Dim c As Range 
    Set Rng = ActiveSheet.Range("J1:J1822") 
    For Each c In Rng 
     c.Offset(, 2).Value = LCase(c.Value) 
    Next c 

For Each cell In Application.ActiveSheet.UsedRange 
    If (cell.Value <> "") Then 
     cell.Value = UCase(Left(cell.Value, 1)) & Right(cell.Value, Len(cell.Value) - 1) 

    End If 
Next 
End Sub 

我的問題,從開始依賴:

Sub Condition() 
     Set Rng = Range("C1:C1822") 
     For Each cell In Rng 

,後來在再次顯示出來:

Sub Change() 
    Dim Rng As Range 
    Dim c As Range 
    Set Rng = ActiveSheet.Range("J1:J1822") 
    For Each c In Rng 
     c.Offset(, 2).Value = LCase(c.Value) 
    Next c 

For Each cell In Application.ActiveSheet.UsedRange 
    If (cell.Value <> "") Then 
     cell.Value = UCase(Left(cell.Value, 1)) & Right(cell.Value, Len(cell.Value) - 1) 

    End If 

回答

0

像這樣將調整到人口數:

Dim sht as WorkSheet, Rng As Range 

Set sht = ActiveSheet 

Set Rng = sht.Range(sht.Range("C1"), sht.Cells(sht.Rows.Count,"C").End(xlUp)) 
+0

非常感謝!你的建議完美運作。 – marcizoub