Excel - разбить строки на партии по 1000 - PullRequest
1 голос
/ 01 ноября 2010

У меня есть список из 50000 файлов (полные пути к файлам). Я хочу переупорядочить их по папкам, по 1000 файлов на папку, используя пакетный файл.

Папкам нужно просто присвоить имена 000, 001, 002, 003 и т. Д. Все, что мне нужно, это чтобы Excel написал «000» для первых 1000 файлов, 001 для следующей тысячи, 002 для следующей тысячи, пока не будет больше файлов.

Я экспериментировал с Do While, но не могу получить то, что хочу. Я могу получить то, что я хочу с:

Do While i < 1001
Range("A" & i) = "'000"

Но это выходит из строя, так как мне нужно сделать новый Do While для каждой дополнительной цифры в номере, и оно не останавливается, когда заканчивается список файлов.

Большое спасибо за любую помощь.

1 Ответ

1 голос
/ 01 ноября 2010

Попробуйте это

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...