2016-12-28 146 views

回答

1

這是一個非常不好的問題,但我想這個問題是你不指定一個數字X,但單元格的值不是整數。如果你改變它如下,它可能工作。

x = Worksheets("Details").Range("A1").End(xlDown).row 
+0

您的斷言是increcrec噸。 'x = Worksheets(「Details」)。Range(「A1」).End(xlDown)'隱式調用'Range'對象的默認成員,它是'_Default',它將*返回*值*細胞。 – ThunderFrame

+0

編輯。謝謝。 –

1

首先,因爲你試圖讓行號,是一個Long類型變量x,而不是Variant

其次,這取決於你想在A列什麼類型的最後一排找到:

選項1:發現最後一排中間無跳過空白單元格。

選項2:找到最後一行跳過中間的空白單元格。

這兩個選項都在我的代碼中實現,使用你想要的選項。

代碼

Private Sub CommandButton2_Click() 

    Dim x As Long 

    With Worksheets("Details") 
     ' option 1 : will get you the last row with data in Column A (without skipping blank cells in the middle) 
     x = .Range("A1").End(xlDown).Row 

     ' option 2 : will get you the last row with data in Column A (with skipping blank cells in the middle) 
     x = .Cells(.Rows.Count, "A").End(xlUp).Row 

     If OptionButton65 = True Then .Cells(x, 6) = "5" 
    End With 

End Sub 
0

就包括實現這一點的另一種方式 - 你可以有也用Range,而不是它的財產

Private Sub CommandButton2_Click() 
    Dim x As Range 
    Set x = Worksheets("Details").Range("F1").End(xlDown) 
    If OptionButton65 = True Then x.Value = "5" 
End Sub 

或者乾脆:

Private Sub CommandButton2_Click()  
    If OptionButton65 = True Then Worksheets("Details").Range("F1").End(xlDown).Value = "5" 
End Sub 
相關問題