Re: [VBA ] EXCEL 新增分頁命名的問題

看板Visual_Basic作者 (DNA探針)時間16年前 (2007/10/20 10:17), 編輯推噓5(501)
留言6則, 2人參與, 最新討論串5/5 (看更多)
※ 引述《Marty (DNA探針)》之銘言: ※ 引述《yaochi (ddd)》之銘言: : ※ 引述《m9556 (紫色天平Boy)》之銘言: : : 你先察看Cells(1,3)這一欄的文字,是否有無法用於命名的文字, : : 不確定的話,可以將該cell的文字,用一個純文字檔命名看看, : : 或許可以知道為什麼~~ : : 建議 sheetname =cstr(Cells(1, j)) <<這樣改 : : 我的拙見~~參考看看~~ : MsgBox "sheetname= " & sheetname : 我在 sheetname 後加一行 MsgBox "sheetname= " & sheetname : 當 j=3 的時候 讀不到sheetname 而 Cells(1,3) 的值 : 為 bbbbbb 之類的純字串 並無 /.% ...等 特殊符號 : 將 Cells(1,j) 改為 CStr(Cells(1,j)) 依然無效 : 請高手幫幫忙 感謝.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.84.11.70

10/20 09:30,
他的sheetname是區域變數 .add.name才是新工作表的name
10/20 09:30

10/20 09:31,
我實際測試過並不會產生錯誤
10/20 09:31

10/20 09:31,
很可能他的儲存格是空的或是有不正確的字元存在
10/20 09:31
'原PO程式碼 Sub 新增分頁() Dim sheetname As String Dim j As Integer For j = 2 To 4 sheetname = Cells(1, j) MsgBox "sheetname= " & sheetname With Worksheets.Add .Name = sheetname End With Next j End Sub '我實際測的時候的確會產生1004錯誤 '我覺得原因是在於執行 .add時 Excel會Focus在新產生的sheet上 '然而新的sheet中並無資料, '導致 sheetname = cells(1,j) 中的cells(1,j)無值可傳回 ' '推論如下:(假設資料在sheet1中,值依序為[a,b,c,d]) '程式在j=2, 'cells(1,2) = "b" ,此時cells(1,2)為Sheet1.cells(1,2) '在執行.add後,產生WorkSheets("b") '在j=3時,因為Focus在WorkSheets("b"), '故傳回的值為WorkSheets("b").cells(1,3) '故產生 1004錯誤 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.84.11.70

10/20 10:55, , 1F
亦或者程式碼的位置不在sheet1中?
10/20 10:55, 1F

10/20 10:56, , 2F
我測試的方法是在sheet1中放一個commandbutton
10/20 10:56, 2F

10/20 10:56, , 3F
把程式放在command的事件中
10/20 10:56, 3F

10/20 10:59, , 4F
試過程式放在模組中會產生1004錯誤
10/20 10:59, 4F

10/20 10:59, , 5F
不需要activate,把cell(i,j)改成sheet1.cell(i,j)即可
10/20 10:59, 5F

10/20 13:11, , 6F
版大的方式也很不錯..^^
10/20 13:11, 6F
文章代碼(AID): #176MKXvg (Visual_Basic)
討論串 (同標題文章)
文章代碼(AID): #176MKXvg (Visual_Basic)