[英]Insert row number into cell using VBA
我有以下簡單的Excel擴展名:
A B C D E
1 2019-01 2019-02 2019-03
2 Product A 50 40 30
3 Product B 80 100 120
4
5 Product A
6
我在名稱管理器中將Row 2:2
定義為變量名:
First_Row = "2:2"
對於Cell B5
的值,我使用以下VBA,它將在First_Row
中找到的第一個值插入,在這種情況下為Product A
:
Sub Row_Number()
Row = Sheet1.Range("First_Row")
Sheet1.Range("B5").Value = First_Row
End Sub
到目前為止,所有這些工作正常。
但是,現在我要在Cell B5
插入2:2
作為值,而不是First_Row
中的第一個值。 因此,我嘗試使用以下方法:
Sub Row_Number()
Row = Sheet1.Range(Range("First_Row").Value)
Sheet1.Range("B5").Value = Row
End Sub
但是,有了這個我
運行時錯誤1004。
您是否知道要更改代碼才能使其正常工作?
您可以使用Range.Address屬性
Option Explicit
Public Sub Row_Number()
Dim RowAddress As String
RowAddress = Sheet1.Range("First_Row").Address(RowAbsolute:=False, ColumnAbsolute:=False)
Sheet1.Range("B5").Value = RowAddress
End Sub
請注意,您應該使用Option Explicit
來確保正確聲明了所有變量。
如果地址為2:2
且Excel將其作為時間02:02
寫入單元格中,則可以通過在地址前面添加'
來解決。 這將強制Excel將其作為文本進行處理,單元格中未顯示'
。
RowAddress = "'" & Sheet1.Range("First_Row").Address(RowAbsolute:=False, ColumnAbsolute:=False)
嘗試此宏不要將Row用作范圍,因為Row是關鍵字文本
最好是使用Row_或其他任何東西
Option Explicit
Sub Row_Number()
Dim Row_ As Range
Set Row_ = Sheet1.Rows("2:2")
Sheet1.Range("B5").Value = Row_.Cells(1)
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.