返回列表 上一主題 發帖

動態資料範圍 名稱定義

動態資料範圍 名稱定義

大家好
想請問大家
我有一個excel 內有多個sheet
各個sheet 中的有資料範圍不固定
想請問要如何利用vba 快速地將各個sheet中有資料的範圍進行名稱定義

謝謝

以下為我目前的解決方法

Dim i As Integer
  
  For i = 1 To n 'n=sheet的總數
    Sheets("第" & i & "項").Select
   Sheets("第" & i & "項").UsedRange.Select
   
    ActiveWorkbook.Names.Add name:="第" & i & "項", RefersTo:=Selection
  
  Next

TOP

回復 1# ciboybj
  1. Sub ex()

  2.     shs = Array("sheet1", "sheet2")

  3.     For Each sh In shs

  4.         Sheets(sh).Select 'Activate

  5.         EndRow = Cells(Cells.Rows.Count, 1).End(xlUp).Row
  6.         Set Rng = Range("A2:A" & EndRow)
  7.         
  8.         '方法1 靜態範圍名稱,A欄資料以A1為名稱
  9.         Names.Add Name:=[A1], RefersTo:=Rng
  10.         
  11.         '方法2 動態範圍名稱,B欄資料以B1為名稱
  12.         Names.Add Name:=[B1], RefersTo:="=Offset($B$1,,,COUNTA($B:$B)-1)"

  13.     Next
  14. End Sub
複製代碼
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

謝謝~
不過我有個問題想再向您請教
由於我的SHEET並非我自行建置的
所以有出現類似SHEET1(名稱為第一項),SHEET3(名稱為第二項)
因此,如是使用您的CODE不知要怎麼改

TOP

回復 4# ciboybj
  1. Sub ex()
  2. Dim Sh As Worksheet
  3. For Each Sh In Sheets '所有工作表迴圈
  4.    With Sh
  5.       ActiveWorkbook.Names.Add .Name, .UsedRange '以工作表名稱為名,所有資料為範圍,新增定義名稱
  6.    End With
  7. Next
  8. End Sub
複製代碼
學海無涯_不恥下問

TOP

謝謝大家
讓我學習了~~~

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題