回復 3#軒云熊
您好,
來源檔指定起迄工作表,這個寫法,會使它去尋找數字工作表,起迄工作表,希望能數第x~第x個工作表,
因為有些工作表是非數字的,請問要怎麼改?
For E = 1 To Sheets.Count
N = Sheets(E).Name: Sheets(E).Activate
If IsNumeric(N) Then
If Int(N) > W.[M2] Then Exit For
If Int(N) >= W.[M1] And Int(N) <= W.[M2] Then
另外請問,這段如何解讀? 是否為來源檔的H欄? 來源檔除了A欄料號是用來作為排序準則,及M1、M2用來數工作表起迄外,其餘欄位都不能用的!
For X = [H65535].End(3).Row To 1 Step -1
If IsError(Cells(X, "H")) Then
Rows(X).Delete
End If
Next X
Range([A65535].End(3), [A4]).Sort [A4], 1, Header:=2作者: 軒云熊 時間: 2021-4-9 00:22
For E = 1 To Sheets.Count
N = Sheets(E).Name: Sheets(E).Activate
If IsNumeric(N) Then
If Int(N) > W.[M2] Then Exit For
If Int(N) >= W.[M1] And Int(N) <= W.[M2] Then
可以改成
For E = 1 To Sheets.Count
Sheets(E).Activate
If E > W.[M2] Then Exit For
If E >= W.[M1] And E <= W.[M2] Then
這段
For X = [H65535].End(3).Row To 1 Step -1
If IsError(Cells(X, "H")) Then
Rows(X).Delete
End If
Next X
Range([A65535].End(3), [A4]).Sort [A4], 1, Header:=2
是用 H欄 做排序後的依據 因為可以排除沒有的資料
或著 你可以改成
Sheets.Copy After:=Sheets(Sheets.Count)
For X = [H65535].End(3).Row To 1 Step -1
If IsError(Cells(X, "A")) Then
Rows(X).Delete
End If
Next X
Range([A65535].End(3), [A4]).Sort [A4], 1, Header:=2
其實也沒差 因為 If D = Brr(Z, 1) Then 已經可以跳過了
我有稍微修改了一下這段
For Each D In xD
SR = Split(xD(D), " ")
For Each S In SR
SInt = Int(S)
If D = Empty Then Exit For
With Range(Cells(1, Y), Cells(Rows.Count, Y).End(3))
On Error Resume Next
Set C = .Find(D)
G = .FindNext(C).Address
If C = D Then
If Not C Is Nothing Then
Rows(C.Row).Cut
Set C = .FindNext(G)
Rows(SInt).Insert , 1
End If
End If
On Error GoTo 0
End With
Next S
Next D
回復 27#軒云熊
熊大好,
我想將依據的工作表改為名稱,才不用一直算第幾個工作表,
但修改後不能運作,停在紅字這一行,請幫忙看下哪裡要再修改?
wO = xS.[設定!Z2].Value
If Sh.Name$(wO) Then MsgBox "沒有指定工作表": Ex.Quit: Set Ex = Nothing: Set Sh = Nothing: Exit Sub
MsgBox """" & "依據" & wO & "工作表排序"
Set Sh = Ex.Sheets(wO & "") '可以指定"依據"哪個工作表來排序作者: 軒云熊 時間: 2021-4-21 00:29
If IsNumeric(wO) Then MsgBox "沒有指定第幾個工作表": Ex.Quit: Set Ex = Nothing: Set Sh = Nothing: Exit Sub
MsgBox """" & "依據" & """第" & wO & "個工作表排序"
Set Sh = Ex.Sheets(wO) '可以指定"依據"哪個工作表來排序作者: PJChen 時間: 2021-4-25 15:23
'在同一個活頁簿指定單一工作表
My_Sh_Name$ = [工作表2!E5].Value
If [工作表2!E9] <> "" Then
'在同一個活頁簿指定多個工作表 Sheets(1)到 Sheets(N)個
起點% = [工作表2!E5].Value
結束點 = [工作表2!E9].Value
If IsNumeric(起點) And IsNumeric(結束點) Then
MsgBox 起點 & "到" & 結束點
Else
MsgBox "未指定工作表位置"
Exit Sub
End If
End If作者: 軒云熊 時間: 2021-4-25 22:48
抱歉這段要改一下 :
'在同一個活頁簿指定單一工作表
My_Sh_Name$ = [工作表2!E5].Value
If [工作表2!E9] <> "" Then
'在同一個活頁簿指定多個工作表 Sheets(1)到 Sheets(N)個
起點% = [工作表2!E5].Value
結束點 = [工作表2!E9].Value
If 起點 = 0 Then
MsgBox "未指定工作表位置"
Exit Sub
ElseIf IsNumeric(起點) And IsNumeric(結束點) Then
MsgBox 起點 & "到" & 結束點
Else
MsgBox "未指定工作表位置"
Exit Sub
End If
End If作者: PJChen 時間: 2021-4-26 01:44
'在同一個活頁簿指定單一工作表
My_Sh_Name$ = [工作表2!E5].Value
If Not IsNumeric(My_Sh_Name) Then [工作表2!E9] = ""
If [工作表2!E9] <> "" Then
'在同一個活頁簿指定多個工作表 Sheets(1)到 Sheets(N)個
起點% = [工作表2!E5].Value
結束點 = [工作表2!E9].Value
If 起點 = 0 Then
MsgBox "未指定工作表位置"
Exit Sub
ElseIf IsNumeric(起點) And IsNumeric(結束點) Then
MsgBox 起點 & "到" & 結束點
Else
MsgBox "未指定工作表位置"
Exit Sub
End If
End If
另外,程式貼到我平常使用的工作表時,一直出現問題, 一下是沒定義,一下是要with...
各種的問題,完全無法使用,只有當它是單獨一個檔時,才能運作,這能解決嗎?
請問 貼到我平常使用的工作表 是甚麼檔案? 可否上傳看一下 感謝
可以用自訂表單 或著 InputBox 然後存成增益集作者: 軒云熊 時間: 2021-4-26 15:06
確定要用 Micro_2 這個檔案嗎? 如果確定 就要重寫因為大部分需求已經不一樣了
如果只用工作表名稱 就改這樣:
'印盤點表~盤點
For X = 1 To Sheets.Count
If Sheets(X).Name = "印盤點表" Then
For X1 = X To Sheets.Count
Sheets(X1).Activate
If Sheets(X1).Name = "盤點" Then
Exit For
End If
Next X1
Exit For
End If
Next X