Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2009, 21:58   #1
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию Создать функцию

Здравствуйте.
Подскажите как создать функцию для данного кода, что бы он выполнялся при клике по кнопке CommandButton3


Код:
 Dim folder As String
    folder = Rep_Documents & "\V ГСМ " & Sheets("Отчет").Range("R1")
    
    Dim fs As Object
    Set fs = CreateObject("Scripting.FileSystemObject")
    If Not fs.FolderExists(folder) Then
        fs.CreateFolder (folder)
    End If
    ' ...

    Application.DisplayAlerts = False
    
    Dim prevPath As String
    prevPath = ThisWorkbook.FullName
    ThisWorkbook.SaveAs folder & "\" & Sheets("Отчет").Range("R1") & ".XLSX", 51, ConflictResolution:=xlLocalSessionChanges
    Dim wb As Workbook
    Set wb = ThisWorkbook
    Workbooks.Open prevPath
    wb.Close
    
    Application.DisplayAlerts = True
segail вне форума Ответить с цитированием
Старый 25.09.2009, 22:16   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Может я чего не так понял? Это у Вас функция? Начинается с Function? Если да,то вместо Function поставьте Sub и вешайте на кнопку.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru

Последний раз редактировалось The_Prist; 25.09.2009 в 22:42.
The_Prist вне форума Ответить с цитированием
Старый 25.09.2009, 22:27   #3
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Да нет надо функцию. Что то вроде этого. Короче не знаю.
Код:
Function HasSpecialChars(str As String) As Boolean
‘ Код
End Function
segail вне форума Ответить с цитированием
Старый 25.09.2009, 22:44   #4
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Трудно сказать. Что Вы хотите получить результатом функции? И что должно передаваться в качестве параметра?
В любом случае функцию не вызвать напрямую кнопкой, необходимо сначала создать процедуру из которой вызывать функцию.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 25.09.2009, 23:08   #5
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Ухожу в дебри.
Короче у меня код который создает папку и подпапку, и сохраняет файл в подпапке.
Возникла необходимость что бы данный код сохранял данный файл еще и в папке.
Вот такие дела.
segail вне форума Ответить с цитированием
Старый 26.09.2009, 00:11   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:

Private Sub CommandButton1_Click()
 
  Dim folder, folder1 As String
 
 '  folder = Полный путь к папке(С:\FF)
  ' folder1 = "Подпапка"  имя подпапки
 On Error Resume Next
 
         ChDir (folder)
 
         If Err.Number = 0 Then
         
         Else
        
         MkDir (folder)
         End If
         
         ChDir (folder & "\" & folder1)
 
         If Err.Number = 0 Then
         
         Else
        
         MkDir (folder & "\" & folder1)
         End If
  ........................................................................................       
     ThisWorkbook.SaveAs folder & "\" & Sheets("Отчет").Range("R1") & ".XLSX", 51, ConflictResolution:=xlLocalSessionChanges
        
  ThisWorkbook.SaveAs folder & "\" & folder1 & "\" & Sheets("Отчет").Range("R1") & ".XLSX", 51, ConflictResolution:=xlLocalSessionChanges

................................................................................

End Sub
Проверяется наличие папки,если нет ошибка не равна 0 и папка создается,потом проверяется наличие под папки-нет,она создается
Дальше сохранение книги в папку и подпапку


Краткая справка по процедурам

Процедура типа Sub (подпрограмма) - универсальная процедура для выполнения различных
заданий в VBA. Только процедуры типа Sub можно выполнять независимо .
Кроме того, одна процедура типа Sub может вызывать(т.е. выполнять) другую.

Процедура типа F u n c t i o n (функция) тоже может выполнять любой VBA-оператор. Отличие
от процедур типа Sub состоит в том, что в данном случае вычисляется некоторое значение, ко-
торое возвращается в ту процедуру, откуда процедура типа Function была вызвана.

Отличия процедур типа Function от процедур типа Sub
Между процедурами типа Function и типа Sub есть одно существенное отличие:
в процедуре типа Function обязательно где-то должен присутствовать по крайней мере
один оператор, задающий значение этой функции.

Public Function Умножение(х As Integer, y As Integer)
Умножение=x*y
End Function1

Вызов функции
Результат=Умножение(4,3) получим 12
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 26.09.2009 в 13:20.
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать функцию с переменным кол-во параметров? VintProg Общие вопросы Delphi 12 11.08.2009 12:49
Как создать через редактор Visual Basic функцию в Excel Dima007 Microsoft Office Excel 2 04.11.2008 20:04
Как создать обратную функцию, которая из уникального номера будет возвращать строку? SkAndrew Общие вопросы Delphi 8 06.04.2008 21:10
Как создать процедуру и функцию? Absent Общие вопросы Delphi 1 18.11.2007 17:36