簡體   English   中英

使用VBA將行號插入單元格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM