Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Кнопка сохранения диапазона ячеек в файл - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Кнопка сохранения диапазона ячеек в файл (Макросы/Sub)
Кнопка сохранения диапазона ячеек в файл
Rapiy Дата: Понедельник, 26.10.2015, 11:55 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Нужна помощь, как сделать кнопку для сохранения диапазона ячеек (a1:b49) в текстовый файл, но с расширением не *.txt , а *.nc .
Если есть возможность, детально, так как я полный чайник.
Вот нашёл подробную инструкцию на стороннем ресурсе (http://bestpog.ru/forum/viewtopic.php?f=39&t=126), но немного не то что нужно (просто копирует диапазон в буфер).
Если можно по аналогии. Всем откликнувшимся заранее СПАСИБО !
 
Ответить
СообщениеНужна помощь, как сделать кнопку для сохранения диапазона ячеек (a1:b49) в текстовый файл, но с расширением не *.txt , а *.nc .
Если есть возможность, детально, так как я полный чайник.
Вот нашёл подробную инструкцию на стороннем ресурсе (http://bestpog.ru/forum/viewtopic.php?f=39&t=126), но немного не то что нужно (просто копирует диапазон в буфер).
Если можно по аналогии. Всем откликнувшимся заранее СПАСИБО !

Автор - Rapiy
Дата добавления - 26.10.2015 в 11:55
SLAVICK Дата: Понедельник, 26.10.2015, 12:05 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Посмотрите здесь
Вам подойдет example_02 :)


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Понедельник, 26.10.2015, 12:06
 
Ответить
СообщениеПосмотрите здесь
Вам подойдет example_02 :)

Автор - SLAVICK
Дата добавления - 26.10.2015 в 12:05
Rapiy Дата: Понедельник, 26.10.2015, 12:38 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Не, все конечно здорова, но мне кажется здесь много лишнего:

[vba]
Код
Sub example_02()
Dim x, y(), i&, j&, s$
x = ActiveSheet.UsedRange.Value
If IsArray(x) Then
ReDim y(1 To UBound(x))
For i = 1 To UBound(x)
For j = 1 To UBound(x, 2)
y(i) = y(i) & vbTab & x(i, j)
Next j
Next i: s = Join(y, vbCrLf)
Else
s = x
End If
With CreateObject("scripting.filesystemobject")
With .CreateTextFile(ThisWorkbook.Path & "\sheet44.txt", True)
.Write s: .Close
End With
End With
MsgBox "Ok", 64
End Sub
[/vba]

И не ясно куда вносить расширение файла (*.nc) и где указывать диапазон ячеек .... Не понимаю кода команд скрипта.
[moder]Оформите код тегами (кнопка #)![/moder]


Сообщение отредактировал Rapiy - Понедельник, 26.10.2015, 12:48
 
Ответить
СообщениеНе, все конечно здорова, но мне кажется здесь много лишнего:

[vba]
Код
Sub example_02()
Dim x, y(), i&, j&, s$
x = ActiveSheet.UsedRange.Value
If IsArray(x) Then
ReDim y(1 To UBound(x))
For i = 1 To UBound(x)
For j = 1 To UBound(x, 2)
y(i) = y(i) & vbTab & x(i, j)
Next j
Next i: s = Join(y, vbCrLf)
Else
s = x
End If
With CreateObject("scripting.filesystemobject")
With .CreateTextFile(ThisWorkbook.Path & "\sheet44.txt", True)
.Write s: .Close
End With
End With
MsgBox "Ok", 64
End Sub
[/vba]

И не ясно куда вносить расширение файла (*.nc) и где указывать диапазон ячеек .... Не понимаю кода команд скрипта.
[moder]Оформите код тегами (кнопка #)![/moder]

Автор - Rapiy
Дата добавления - 26.10.2015 в 12:38
SLAVICK Дата: Понедельник, 26.10.2015, 12:58 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Лично я ничего лишнего не заметил :D
Вместо:
[vba]
Код
x = ActiveSheet.UsedRange.Value
[/vba]
Пишите
[vba]
Код
x = ActiveSheet.[a1:b49].Value
[/vba]
а название файла замените на какое нужно, с каким нужно расширением, например:
[vba]
Код
ThisWorkbook.Path & "\sheet44.nc"
[/vba] ^_^


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеЛично я ничего лишнего не заметил :D
Вместо:
[vba]
Код
x = ActiveSheet.UsedRange.Value
[/vba]
Пишите
[vba]
Код
x = ActiveSheet.[a1:b49].Value
[/vba]
а название файла замените на какое нужно, с каким нужно расширением, например:
[vba]
Код
ThisWorkbook.Path & "\sheet44.nc"
[/vba] ^_^

Автор - SLAVICK
Дата добавления - 26.10.2015 в 12:58
Rapiy Дата: Понедельник, 26.10.2015, 13:11 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Как корректно написать тело макроса, и что за что отвечает ?..... :(
 
Ответить
СообщениеКак корректно написать тело макроса, и что за что отвечает ?..... :(

Автор - Rapiy
Дата добавления - 26.10.2015 в 13:11
Rapiy Дата: Понедельник, 26.10.2015, 13:13 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Сейчас опробую ......
 
Ответить
СообщениеСейчас опробую ......

Автор - Rapiy
Дата добавления - 26.10.2015 в 13:13
Rapiy Дата: Понедельник, 26.10.2015, 13:30 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Вышла ошибка синтаксиса, как правильно прописать запуск скрипта кнопки. Sorry за мою безграмотность.
Error
 
Ответить
СообщениеВышла ошибка синтаксиса, как правильно прописать запуск скрипта кнопки. Sorry за мою безграмотность.
Error

Автор - Rapiy
Дата добавления - 26.10.2015 в 13:30
Rapiy Дата: Понедельник, 26.10.2015, 13:38 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007


Сообщение отредактировал Rapiy - Понедельник, 26.10.2015, 13:40
 
Ответить
СообщениеСсылка на картинку с ошибкой (большой размер). :D

Очень нужна помощь.

Автор - Rapiy
Дата добавления - 26.10.2015 в 13:38
SLAVICK Дата: Понедельник, 26.10.2015, 13:52 | Сообщение № 9
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Очень нужна помощь.

rules Читайте правила форума.
Нам пример за Вас рисовать?
Был общий вопрос - дан общий ответ. Конкретный ответ при наличии файла - примера. Или Вам показать ответ в картинке, также как Вы вопрос задали :o


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Понедельник, 26.10.2015, 13:53
 
Ответить
Сообщение
Очень нужна помощь.

rules Читайте правила форума.
Нам пример за Вас рисовать?
Был общий вопрос - дан общий ответ. Конкретный ответ при наличии файла - примера. Или Вам показать ответ в картинке, также как Вы вопрос задали :o

Автор - SLAVICK
Дата добавления - 26.10.2015 в 13:52
Rapiy Дата: Понедельник, 26.10.2015, 13:59 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Разобрался должно быть так:
[vba]
Код
Private Sub CommandButton1_Click()
Call example_02
End Sub
[/vba]

Сохраняет в папку где сам файл excel, но думаю это можно подправить указав путь, там же где и название файла.
Хотелось бы получать при нажатии на кнопку окно с диалогом сохранения где можно прописать имя файла.
Не совсем нравится что скрипт сохраняет файл с именем прописанным в теле скрипта.

Можно ли с делать диалоговое окно сохранения (с форматом *.nc) ?

***********************************************************************
Ответ на пост выше.
Не мог прикрепить картинку к сообщению (файловый сервис картинок), по этому дал ссылку. Извините, исправлюсь.


Сообщение отредактировал Rapiy - Понедельник, 26.10.2015, 14:06
 
Ответить
СообщениеРазобрался должно быть так:
[vba]
Код
Private Sub CommandButton1_Click()
Call example_02
End Sub
[/vba]

Сохраняет в папку где сам файл excel, но думаю это можно подправить указав путь, там же где и название файла.
Хотелось бы получать при нажатии на кнопку окно с диалогом сохранения где можно прописать имя файла.
Не совсем нравится что скрипт сохраняет файл с именем прописанным в теле скрипта.

Можно ли с делать диалоговое окно сохранения (с форматом *.nc) ?

***********************************************************************
Ответ на пост выше.
Не мог прикрепить картинку к сообщению (файловый сервис картинок), по этому дал ссылку. Извините, исправлюсь.

Автор - Rapiy
Дата добавления - 26.10.2015 в 13:59
Rapiy Дата: Понедельник, 26.10.2015, 14:21 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Кнопка.
[vba]
Код
Private Sub CommandButton1_Click()
Call example_02
End Sub
[/vba]

Тело скрипта.

[vba]
Код
Sub example_02()
Dim x, y(), i&, j&, s$
x = ActiveSheet.[a1:b49].Value
If IsArray(x) Then
ReDim y(1 To UBound(x))
For i = 1 To UBound(x)
For j = 1 To UBound(x, 2)
y(i) = y(i) & vbTab & x(i, j)
Next j
Next i: s = Join(y, vbCrLf)
Else
s = x
End If
With CreateObject("scripting.filesystemobject")
With .CreateTextFile(ThisWorkbook.Path & "\000.nc", True)
.Write s: .Close
End With
End With
MsgBox "Ok", 64
End Sub
[/vba]

Файл 000.nc сохраняется в папку с файлом excel в котором расположена кнопка.
Как сделать что бы при сохранении самому задавать имя файла, а лучше и путь сохранения?


Сообщение отредактировал Rapiy - Понедельник, 26.10.2015, 14:29
 
Ответить
СообщениеКнопка.
[vba]
Код
Private Sub CommandButton1_Click()
Call example_02
End Sub
[/vba]

Тело скрипта.

[vba]
Код
Sub example_02()
Dim x, y(), i&, j&, s$
x = ActiveSheet.[a1:b49].Value
If IsArray(x) Then
ReDim y(1 To UBound(x))
For i = 1 To UBound(x)
For j = 1 To UBound(x, 2)
y(i) = y(i) & vbTab & x(i, j)
Next j
Next i: s = Join(y, vbCrLf)
Else
s = x
End If
With CreateObject("scripting.filesystemobject")
With .CreateTextFile(ThisWorkbook.Path & "\000.nc", True)
.Write s: .Close
End With
End With
MsgBox "Ok", 64
End Sub
[/vba]

Файл 000.nc сохраняется в папку с файлом excel в котором расположена кнопка.
Как сделать что бы при сохранении самому задавать имя файла, а лучше и путь сохранения?

Автор - Rapiy
Дата добавления - 26.10.2015 в 14:21
SLAVICK Дата: Понедельник, 26.10.2015, 14:23 | Сообщение № 12
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Можно ли с делать диалоговое окно сохранения (с форматом *.nc) ?

Можно :D :


off_top
И для тех кому лень почитать правила:

Ответ на пост выше.
Не мог прикрепить картинку к сообщению (файловый сервис картинок), по этому дал ссылку. Извините, исправлюсь.


Цитата
3. Кратко, но ёмко опишите задачу в теле поста. ВСЕГДА прикладывайте файл-пример, кроме тех случаев, когда вопрос носит общий характер и не касается конкретно Вашего файла. Темы касающиеся конкретного файла, но без приложенного примера, будут закрываться или удаляться.

Старайтесь прилагать файлы в версии Excel 2003-го офиса(xls), так как эти файлы могут открыть пользователи с любой версией Excel, в отличие от файлов версий Excel 2007/2010/2013 (xlsх).


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Понедельник, 26.10.2015, 14:29
 
Ответить
Сообщение
Можно ли с делать диалоговое окно сохранения (с форматом *.nc) ?

Можно :D :


off_top
И для тех кому лень почитать правила:

Ответ на пост выше.
Не мог прикрепить картинку к сообщению (файловый сервис картинок), по этому дал ссылку. Извините, исправлюсь.


Цитата
3. Кратко, но ёмко опишите задачу в теле поста. ВСЕГДА прикладывайте файл-пример, кроме тех случаев, когда вопрос носит общий характер и не касается конкретно Вашего файла. Темы касающиеся конкретного файла, но без приложенного примера, будут закрываться или удаляться.

Старайтесь прилагать файлы в версии Excel 2003-го офиса(xls), так как эти файлы могут открыть пользователи с любой версией Excel, в отличие от файлов версий Excel 2007/2010/2013 (xlsх).

Автор - SLAVICK
Дата добавления - 26.10.2015 в 14:23
Rapiy Дата: Понедельник, 26.10.2015, 14:31 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Кнопка.
[vba]
Код
Private Sub CommandButton1_Click()
Call example_02
End Sub
[/vba]

Тело скрипта.

[vba]
Код
Sub example_02()
Dim x, y(), i&, j&, s$
x = ActiveSheet.[a1:b49].Value
If IsArray(x) Then
ReDim y(1 To UBound(x))
For i = 1 To UBound(x)
For j = 1 To UBound(x, 2)
y(i) = y(i) & vbTab & x(i, j)
Next j
Next i: s = Join(y, vbCrLf)
Else
s = x
End If
With CreateObject("scripting.filesystemobject")
With .CreateTextFile(ThisWorkbook.Path & "\000.nc", True)
.Write s: .Close
End With
End With
MsgBox "Ok", 64
End Sub
[/vba]

Файл 000.nc сохраняется в папку с файлом excel в котором расположена кнопка.
Как сделать что бы при сохранении самому задавать имя файла, а лучше и путь сохранения?

ПРИКРЕПЛЯЮ ФАЙЛ! :D
исправился, больше не буду pray
К сообщению приложен файл: primer.xls (50.0 Kb)


Сообщение отредактировал Rapiy - Понедельник, 26.10.2015, 14:35
 
Ответить
СообщениеКнопка.
[vba]
Код
Private Sub CommandButton1_Click()
Call example_02
End Sub
[/vba]

Тело скрипта.

[vba]
Код
Sub example_02()
Dim x, y(), i&, j&, s$
x = ActiveSheet.[a1:b49].Value
If IsArray(x) Then
ReDim y(1 To UBound(x))
For i = 1 To UBound(x)
For j = 1 To UBound(x, 2)
y(i) = y(i) & vbTab & x(i, j)
Next j
Next i: s = Join(y, vbCrLf)
Else
s = x
End If
With CreateObject("scripting.filesystemobject")
With .CreateTextFile(ThisWorkbook.Path & "\000.nc", True)
.Write s: .Close
End With
End With
MsgBox "Ok", 64
End Sub
[/vba]

Файл 000.nc сохраняется в папку с файлом excel в котором расположена кнопка.
Как сделать что бы при сохранении самому задавать имя файла, а лучше и путь сохранения?

ПРИКРЕПЛЯЮ ФАЙЛ! :D
исправился, больше не буду pray

Автор - Rapiy
Дата добавления - 26.10.2015 в 14:31
SLAVICK Дата: Понедельник, 26.10.2015, 14:44 | Сообщение № 14
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Вот: :D

p/s
Это форум, и сюда приходят люди с вопросами и готовый пример - помогает понять, что, как и к чему booze
К сообщению приложен файл: 6288885.xls (53.0 Kb)


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Понедельник, 26.10.2015, 14:55
 
Ответить
СообщениеВот: :D

p/s
Это форум, и сюда приходят люди с вопросами и готовый пример - помогает понять, что, как и к чему booze

Автор - SLAVICK
Дата добавления - 26.10.2015 в 14:44
Rapiy Дата: Пятница, 21.07.2017, 14:09 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Доброе время суток!

Возникла необходимость продолжить диалог. Как в имя сохраняемого файла добавить запись из ячеек к примеру C3 и D3, сохранённый файл должен быть такой: bla_bla_[цыфры из ячейки C3] x [цыфры из ячейки D3].cnc , вместо (proba.cnc) нужно что то прописать, я полагаю.
Файл с скриптом прикрепляю :) Очень надеюсь что кто нибудь прочитает и поможет pray Заранее огромное спасибо!
[vba]
Код
Sub example_02()
Dim x, y(), i&, j&, s$
x = ActiveSheet.[a1:b49].Value
If IsArray(x) Then
ReDim y(1 To UBound(x))
For i = 1 To UBound(x)
For j = 1 To UBound(x, 2)
y(i) = y(i) & vbTab & x(i, j)
Next j
Next i: s = Join(y, vbCrLf)
Else
s = x
End If
With CreateObject("scripting.filesystemobject")
With .CreateTextFile(ThisWorkbook.Path & "\proba.cnc", True)
.Write s: .Close
End With
End With
MsgBox "Ok ;) файл сохранён", 64
End Sub
[/vba]
К сообщению приложен файл: 000000000000000.xlsb (19.6 Kb)


Сообщение отредактировал Rapiy - Пятница, 21.07.2017, 14:22
 
Ответить
СообщениеДоброе время суток!

Возникла необходимость продолжить диалог. Как в имя сохраняемого файла добавить запись из ячеек к примеру C3 и D3, сохранённый файл должен быть такой: bla_bla_[цыфры из ячейки C3] x [цыфры из ячейки D3].cnc , вместо (proba.cnc) нужно что то прописать, я полагаю.
Файл с скриптом прикрепляю :) Очень надеюсь что кто нибудь прочитает и поможет pray Заранее огромное спасибо!
[vba]
Код
Sub example_02()
Dim x, y(), i&, j&, s$
x = ActiveSheet.[a1:b49].Value
If IsArray(x) Then
ReDim y(1 To UBound(x))
For i = 1 To UBound(x)
For j = 1 To UBound(x, 2)
y(i) = y(i) & vbTab & x(i, j)
Next j
Next i: s = Join(y, vbCrLf)
Else
s = x
End If
With CreateObject("scripting.filesystemobject")
With .CreateTextFile(ThisWorkbook.Path & "\proba.cnc", True)
.Write s: .Close
End With
End With
MsgBox "Ok ;) файл сохранён", 64
End Sub
[/vba]

Автор - Rapiy
Дата добавления - 21.07.2017 в 14:09
RAN Дата: Пятница, 21.07.2017, 14:37 | Сообщение № 16
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
With .CreateTextFile(ThisWorkbook.Path & "\bla_bla_" & [C3] & " x " & [D3] & ".cnc", True)
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
With .CreateTextFile(ThisWorkbook.Path & "\bla_bla_" & [C3] & " x " & [D3] & ".cnc", True)
[/vba]

Автор - RAN
Дата добавления - 21.07.2017 в 14:37
Rapiy Дата: Пятница, 21.07.2017, 15:12 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
RAN, Спасибо, всё получилось.
 
Ответить
СообщениеRAN, Спасибо, всё получилось.

Автор - Rapiy
Дата добавления - 21.07.2017 в 15:12
RAN Дата: Пятница, 21.07.2017, 21:58 | Сообщение № 18
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Вам крупно повезло.
Я как раз сильно устал от файлов .art, .stl, .rlf, .nc и т.п.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВам крупно повезло.
Я как раз сильно устал от файлов .art, .stl, .rlf, .nc и т.п.

Автор - RAN
Дата добавления - 21.07.2017 в 21:58
Rapiy Дата: Понедельник, 24.07.2017, 09:07 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 28
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
RAN, Не меня меня лично в данном аспекте .tap, .nc, .cnc интересуют, .stl это конечно не плохо (nurbs это круто) :D :D :D но как то все более на уровне кода тянет работать. Если Вы параметризацией занимались (ну там круговая интерполяция...), мы бы нашли общий язык ...?


Сообщение отредактировал Rapiy - Понедельник, 24.07.2017, 09:09
 
Ответить
СообщениеRAN, Не меня меня лично в данном аспекте .tap, .nc, .cnc интересуют, .stl это конечно не плохо (nurbs это круто) :D :D :D но как то все более на уровне кода тянет работать. Если Вы параметризацией занимались (ну там круговая интерполяция...), мы бы нашли общий язык ...?

Автор - Rapiy
Дата добавления - 24.07.2017 в 09:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Кнопка сохранения диапазона ячеек в файл (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!