返回列表 上一主題 發帖

動態資料範圍 名稱定義

動態資料範圍 名稱定義

大家好
想請問大家
我有一個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

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題