返回列表 上一主題 發帖

數字名稱工作表

回復 1# pideo


你的問題點很多,尤其是資料型態的部份

1.你的uRng  是一個變數名稱,如果打成"uRng",電腦就會找這個名稱的工作表,顯然是找不到

2.str(uRng)..............只有值 才能用str這個函數,例如1111轉換成"1111",但是你的uRng是變數名稱............

3.正確寫法是:Workbooks("a.xlsm").Worksheets(uRng).cells(1,1)    你少寫了S

4.寫程式不先定義資料型態是很不好的習慣,你的uRng 裡面裝的值是數字,假設uRng=5,所以Worksheets(uRng),代表電腦去找第5個工作表

所以請補上Dim Urng As String

更正程式如下,先決條件你的num要有值
  1. Dim Urng As String
  2. For i = 1 To num
  3.   Urng = Workbooks("a.xlsm").Worksheets("代號").Cells(i, 1)
  4.   Workbooks("a.xlsm").Worksheets.Add.Name = Urng
  5.   Workbooks("a.xlsm").Worksheets(Urng).Cells(1, 1) = "某些資料"
  6. Next
複製代碼

TOP

回復 2# n7822123


更正我第2項說法

2.Worksheets(str(uRng)).......................只有數值 才能用str這個函數,例如1111轉換成"1111",但是你的uRng是變數名稱............

你把str函數改成Cstr 就行了,記住str函數裡面的引數只能是數值,不能是變數名稱

更正如下:
  1. For i = 1 To num
  2.   Urng = Workbooks("a.xlsm").Worksheets("代號").Cells(i, 1)
  3.   Workbooks("a.xlsm").Worksheets.Add.Name = Urng
  4.   Workbooks("a.xlsm").Sheets(CStr(Urng)).Cells(1, 1) = "某些資料"
  5. Next
複製代碼

TOP

本帖最後由 n7822123 於 2015-11-2 02:32 編輯

回復 3# n7822123


抱歉,我說錯啦

剛剛去查了一下str 這個函數,他前面會保留一個字符用來判斷正負號,裡面是可以放變數的

str(-1234)="-1234"   這沒爭議,但是

str(1234)=" 1234"  前面會有一個空格不是"1234"

所以結論就是......str還是少用吧..........我都用Cstr

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題