Vba Excel-將行分成1000個批次
Vba Excel-將行分成1000個批次,vba,excel,Vba,Excel,我有50000個文件(完整文件路徑)的列表。我想將這些文件重新排序到文件夾中,使用批處理文件,每個文件夾1000個文件文件夾只需要命名為000、001、002、003等。我只需要Excel為前1000個文件寫“000”excel擴展名不一致,為下千個文件寫“001”,為下千個文件寫“002”,直到沒有更多的文件為止我已經嘗試了一段時間,但無法得到我想要的。我可以得到一些我想要的東西:Do While i < ("A" & i) = "'000"i
我有50000個文件(完整文件路徑)的列表。我想將這些文件重新排序到文件夾中,使用批處理文件,每個文件夾1000個文件
文件夾只需要命名為000、001、002、003等。我只需要Excel為前1000個文件寫“000”,為下千個文件寫“001”,為下千個文件寫“002”,直到沒有更多的文件為止
我已經嘗試了一段時間,但無法得到我想要的。我可以得到一些我想要的東西:
Do While i < 1001

Range("A" & i) = "'000"
i<1001時執行
范圍(“A”和i)=“000”
但這會發生故障,因為我需要為數字中的每一個額外數字執行一個新的do While,并且當文件列表用完時,它不會停止
非常感謝你的幫助
試試這個
Sub a()
Dim i, j As Long 'Integers go only up to 32K
Dim s As String
For i = 1 To 50000

Range("A" & i).NumberFormat = "@" 'Show as text , to show leading zeroes
j = Int((i - 1) / 1000) 'Calculate the batch number for this Cell
s = CStr(j) '...and To String
Range("A" & i) = Mid("000", 1, 3 - Len(s)) + s 'Fill with leading zeroes
Next i
End Sub

試試這個
Sub a()
Dim i, j As Long 'Integers go only up to 32K
Dim s As String
For i = 1 To 50000

Range("A" & i).NumberFormat = "@" 'Show as text , to show leading zeroes
j = Int((i - 1) / 1000) 'Calculate the batch number for this Cell
s = CStr(j) '...and To String
Range("A" & i) = Mid("000", 1, 3 - Len(s)) + s 'Fill with leading zeroes
Next i
End Sub
非常感謝。這很有效。我可能在我的OP中不夠明確,但是列表的長度是可變的excel擴展名不一致,并不總是50000。我該怎么做呢?這樣,我就可以不用I=1到50000,而是I=until單元格(I,2)”(即直到B列為空?)您可以使用工作表函數預先計算列中的單元格數。((“A:A”))之類的東西謝謝!這很有效。我可能在我的OP中不夠明確,但是列表的長度是可變的,并不總是50000。我該怎么做呢?這樣,我就可以不用I=1到50000,而是I=until單元格(I,2)”(即直到B列為空?)您可以隨時使用.((“A:A”))之類的東西預先計算列中的單元格數