Board logo

標題: [發問] 取工作表名稱再覆制多次 [打印本頁]

作者: missbb    時間: 2015-8-20 23:33     標題: 取工作表名稱再覆制多次

工作部有20張SHEETS, 由第7張至最後一張的SHEET名稱, 放在AA檔之F1起, 每個SHEET名稱COPY 20次. 而E1顯示1,2,3,4,....20 , 我寫了下列, 只可以出現最後一張工作表, 請教錯誤在那?

1 工作表名1
2 工作表名1
3 工作表名1
4 工作表名1
...20 工作表名1

1 工作表名2
2 工作表名2
3 工作表名2
4工作表名2
...20 工作表名2
  1. Sub getSheetName()

  2.     Dim i As Integer
  3.     Dim shtname As Integer
  4.    
  5.     Worksheets("aa").Select
  6.     Range("B1").CurrentRegion.Clear
  7.    
  8.     Range("B1").Select
  9.    
  10.     For i = 7 To Worksheets.Count
  11.     Range("B1").Resize(20) = Worksheets(i).Name
  12.    
  13.               
  14.     Next i
  15.    
  16. End Sub
複製代碼

作者: ikboy    時間: 2015-8-20 23:51

你的代碼重覆填在Sheets("aa").Range("B1").Resize(20)
當然衹會見到最後一頁的頁名, 另外由7~最後一頁的頁名都是數字?
作者: missbb    時間: 2015-8-21 08:30

回復 2# ikboy


    是英文加數字, 但1-6張SHEET是不用處理的.有勞!
作者: lpk187    時間: 2015-8-21 08:55

本帖最後由 lpk187 於 2015-8-21 08:57 編輯

回復 3# missbb



循環需要再加上一個變數
  1. Sub getSheetName()

  2.     Dim i As Integer
  3.     Dim shtname As Integer
  4.    
  5.     Worksheets("aa").Select
  6.     Range("B1").CurrentRegion.Clear
  7.    
  8.     Range("B1").Select
  9.     n = 1
  10.     For i = 7 To Worksheets.Count
  11.    
  12.     Range("B" & n).Resize(20) = Worksheets(i).Name
  13.     n = n + 20
  14.     Next i
  15.    
  16. End Sub
複製代碼

作者: ikboy    時間: 2015-8-21 10:46

我有點奇怪,為甚麼missbb先進有過一句 Dim shtname As Integer, 是不是還有後期引用 sheets.name ?
但宣告成整數!
作者: missbb    時間: 2015-8-21 16:21

回復 4# lpk187


    如何在A1加上1,2,3.....20, 再重複?
有勞
作者: ikboy    時間: 2015-8-21 17:02

for i = 你的下標 to  你的上標
  for j = 1 to 20
    [a1]=join([a1], 你的物件)
      next i,j
作者: missbb    時間: 2015-8-21 21:22

回復 7# ikboy

多謝指導! :D
作者: missbb    時間: 2015-8-21 21:23

回復 4# lpk187

多謝指導! :D
作者: n7822123    時間: 2015-8-21 22:26

本帖最後由 n7822123 於 2015-8-21 22:28 編輯
  1. Sub getSheetName()

  2. Dim i As Integer
  3. Dim shtname As Integer

  4. Worksheets("aa").Select
  5. Range("B1").CurrentRegion.Clear

  6. Range("B1").Select

  7. n = 1

  8. For i = 7 To Worksheets.Count

  9.   Range("B" & n).Resize(20) = Worksheets(i).Name

  10.   For j = 1 To 20
  11.     Range("A" & n) = j
  12.     n = n + 1
  13.   Next j
  14. Next i
  15.    
  16. End Sub
複製代碼
請收下,:D
作者: 准提部林    時間: 2015-8-22 16:41

Sub Test0822()
Dim xR As Range, j%
[aa!A:B].Clear
Set xR = [aa!A1]
For j = 7 To Sheets.Count
  xR.Resize(20) = "=ROW(A1)"
  xR(1, 2).Resize(20) = Sheets(j).Name
  Set xR = xR(21)
Next j
End Sub
作者: missbb    時間: 2015-8-23 18:13

回復 10# n7822123


    多謝指導!




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