Board logo

標題: 動態資料範圍 名稱定義 [打印本頁]

作者: ciboybj    時間: 2014-7-23 17:21     標題: 動態資料範圍 名稱定義

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

謝謝
作者: ciboybj    時間: 2014-7-23 23:24

以下為我目前的解決方法

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
作者: ML089    時間: 2014-7-24 00:34

回復 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
複製代碼

作者: ciboybj    時間: 2014-7-24 12:45

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

回復 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
複製代碼

作者: ciboybj    時間: 2014-7-24 20:43

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




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)