返回列表 上一主題 發帖

[發問] 用迴圈判斷sheet名稱是否相同,並複製(已解決~感謝各位)

回復 7# GBKEE


    大大請問一下
你的程式要怎麼放?
我這樣放好像不能動... (我放在按鈕裡面)
Private Sub CommandButton2_Click()
Option Explicit
Sub Ex()
    Dim xSH As Integer, Sh As Worksheet, xi As Integer, A As Integer
    A = 6
    For Each Sh In Sheets
        If IsNumeric(Sh.Name) Then xSH = xSH + 1
    Next
    For xi = xSH + 1 To A
        Sheets("1").Copy , Sheets(Sheets.Count)
        Sheets(Sheets.Count).Name = xi
    Next
End Sub
End Sub
哈囉~大家好呀

TOP

回復 6# iceandy6150
  1. Option Explicit
  2. Sub Ex()
  3.     Dim xSH As Integer, Sh As Worksheet, xi As Integer, A As Integer
  4.     A = 6
  5.     For Each Sh In Sheets
  6.         If IsNumeric(Sh.Name) Then xSH = xSH + 1
  7.     Next
  8.     For xi = xSH + 1 To A
  9.         Sheets("1").Copy , Sheets(Sheets.Count)
  10.         Sheets(Sheets.Count).Name = xi
  11.     Next
  12. End Sub
複製代碼

TOP

回復  iceandy6150
Hsieh 發表於 2012-2-17 00:10



    超級版主不好意思
今天測試發現一些小問題
用sheet.count是可以算出sheet的數目
但是我可能有<功能><命令>等sheet存在
例如我現有的sheet是 <功能><測試><命令><1>
如果textbox輸入4,那麼將不會動作,因為sheet數量有4個了
輸入5,會變成<功能><測試><命令><1><5>

目標是每次核對目前所有sheet的名稱是否有相同的
若有則不新增,若無才新增
而且新增時只新增純數字名稱的sheet
不會把其他非數字名稱的sheet算入

謝謝
哈囉~大家好呀

TOP

回復 4# Hsieh


    哇~太神奇了吧
雖然我看不太懂什麼意思
但是貼上程式後測試
ok耶~~~
太感謝你了~~:loveliness:

我知道的函數太少了,非常弱的新手一個:'(
哈囉~大家好呀

TOP

回復 3# iceandy6150
  1. Private Sub CommandButton1_Click()
  2. Application.ScreenUpdating = False
  3. If TextBox1 <> "" Then
  4. For i = 1 To Val(TextBox1) - Sheets.Count
  5.    Sheets(1).Copy after:=Sheets(Sheets.Count)
  6.    ActiveSheet.Name = CStr(Sheets.Count)
  7. Next
  8. End If
  9. Application.ScreenUpdating = True
  10. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復  iceandy6150


Private Sub CommandButton1_Click()
If TextBox1  "" Then
For i = 1 To Val(T ...
Hsieh 發表於 2012-2-16 23:44


大大,你的方法可以新增.....輸入的數量的sheet
可是我要以<1>這個sheet為樣本,所有新增的都是複製<1>
另外是防呆功能
例如第一次輸入5 ----> 程式新增 <2><3><4><5>  (1原本就有)
但後來覺得5個不夠用,於是輸入8--->程式判斷1~5已經有了,不新增。6~8新增
(這樣1~5內的資料不會被動到)

謝謝
哈囉~大家好呀

TOP

回復 1# iceandy6150


Private Sub CommandButton1_Click()
If TextBox1 <> "" Then
For i = 1 To Val(TextBox1)
   With Sheets.Add(after:=Sheets(Sheets.Count))
   .Name = CStr(Sheets.Count)
   End With
Next
End If
End Sub
學海無涯_不恥下問

TOP

        靜思自在 : 脾氣嘴巴不好,心地再好也不能算是好人。
返回列表 上一主題