к сожалению файл выложить не могу - чистить от коммерческой тайны долго))). процедура необходима для извлечения из имени листа например "66.запрос" натурального числа и создания с его помощью имени Папки:
[vba]
Код
Private Sub CommandButton1_Click() Dim aaaa As Integer aaaa = ???????ActiveSheet.Name?????????? Const sPath$ = "C:\+запросы\запрос_№ & aaaa" On Error Resume Next GetAttr (sPath) ' если папка не существует, то будет ошибка If Err Then MkDir sPath ' если была ошибка, то создать папку End Sub
[/vba] всем заранее спасибо.
пример файла, не судите строго: в VBA я ноль, поэтому получилось "лоскутное одеяло"
к сожалению файл выложить не могу - чистить от коммерческой тайны долго))). процедура необходима для извлечения из имени листа например "66.запрос" натурального числа и создания с его помощью имени Папки:
[vba]
Код
Private Sub CommandButton1_Click() Dim aaaa As Integer aaaa = ???????ActiveSheet.Name?????????? Const sPath$ = "C:\+запросы\запрос_№ & aaaa" On Error Resume Next GetAttr (sPath) ' если папка не существует, то будет ошибка If Err Then MkDir sPath ' если была ошибка, то создать папку End Sub
[/vba] всем заранее спасибо.
пример файла, не судите строго: в VBA я ноль, поэтому получилось "лоскутное одеяло"alex3111
спасибо за вариант - число до "." извлекает без ошибок, но, если возможно, хотелось бы чтобы искалось именно число, дабы не править код вручную, т.к. текстовка листа № запроса может меняться, т.е. "." не обязательно будет.
Прошу еще помощи: в строке переменная "aaaa" не хочет отображаться числом [vba]
Код
Const sPath$ = "C:\+запросы\запрос_№ & aaaa"
[/vba] подскажите пожалуйста
спасибо за вариант - число до "." извлекает без ошибок, но, если возможно, хотелось бы чтобы искалось именно число, дабы не править код вручную, т.к. текстовка листа № запроса может меняться, т.е. "." не обязательно будет.
Прошу еще помощи: в строке переменная "aaaa" не хочет отображаться числом [vba]
Sub ttt() sn_ = ActiveSheet.Name For i = 1 To Len(sn_) zn_ = Mid(sn_, i, 1) If zn_ Like "[0-9]" Then n_ = n_ & zn_ 'Для выковыривания только первого числа, если их несколько (например, пп23оо46рр, а нужно вынуть 23) ' Else ' If -n_ Then Exit For End If Next sPath$ = "C:\+запросы\запрос_№" & n_ End Sub
[/vba]
Так можно: [vba]
Код
Sub ttt() sn_ = ActiveSheet.Name For i = 1 To Len(sn_) zn_ = Mid(sn_, i, 1) If zn_ Like "[0-9]" Then n_ = n_ & zn_ 'Для выковыривания только первого числа, если их несколько (например, пп23оо46рр, а нужно вынуть 23) ' Else ' If -n_ Then Exit For End If Next sPath$ = "C:\+запросы\запрос_№" & n_ End Sub
Это-то понятно. А вот ЧТО Вы там искать хотите? Я просот стараюсь сделать так, чтобы не я Вам ответ на блюдечке дал, а Вы самостоятельно ответили на собственный вопрос. Вот смотрите - у Вас есть имя листа "ааа767ккк387ллл", Вам нужно вынуть оттуда 767. Причем, Вы не знаете заранее, какие это будут цифры. Финд подразумевает, что Вы четко укажете ему, что нужно искать (где - мы знаем). Так вот, вопрос - что Вы хотите поставить Финду в первый аргумент, чтобы он его искал? Теоретически можно пробежаться циклом по числам от 0 до 9 и посмотреть, что найдется, но как Вы будете искать вторую семерку в 767? Конечно, и это можно, но зачем?
Это-то понятно. А вот ЧТО Вы там искать хотите? Я просот стараюсь сделать так, чтобы не я Вам ответ на блюдечке дал, а Вы самостоятельно ответили на собственный вопрос. Вот смотрите - у Вас есть имя листа "ааа767ккк387ллл", Вам нужно вынуть оттуда 767. Причем, Вы не знаете заранее, какие это будут цифры. Финд подразумевает, что Вы четко укажете ему, что нужно искать (где - мы знаем). Так вот, вопрос - что Вы хотите поставить Финду в первый аргумент, чтобы он его искал? Теоретически можно пробежаться циклом по числам от 0 до 9 и посмотреть, что найдется, но как Вы будете искать вторую семерку в 767? Конечно, и это можно, но зачем?_Boroda_