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

Вход

Регистрация

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

 

= Мир MS Excel/Формат ячейки в макрос - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Формат ячейки в макрос (Макросы/Sub)
Формат ячейки в макрос
RAN Дата: Суббота, 29.08.2015, 19:04 | Сообщение № 1
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Мяв!
Чтой-то все криво получается.
Нужно макросом отформатиравать столбец форматом А1
К сообщению приложен файл: NumberFormat.xlsx (8.0 Kb)


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Суббота, 29.08.2015, 19:52
 
Ответить
СообщениеМяв!
Чтой-то все криво получается.
Нужно макросом отформатиравать столбец форматом А1

Автор - RAN
Дата добавления - 29.08.2015 в 19:04
Udik Дата: Суббота, 29.08.2015, 19:39 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
А чего нужно-то?
Там такого типа строки
[vba]
Код

Public Sub testFormat()
With ActiveSheet
.Columns(1).NumberFormat = "0,##"
.Columns(2).NumberFormat = "hh:mm:ss"
.Columns(3).NumberFormat = "#,00р."
End With
End Sub
[/vba]

Просто подобрать необходимый формат


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеА чего нужно-то?
Там такого типа строки
[vba]
Код

Public Sub testFormat()
With ActiveSheet
.Columns(1).NumberFormat = "0,##"
.Columns(2).NumberFormat = "hh:mm:ss"
.Columns(3).NumberFormat = "#,00р."
End With
End Sub
[/vba]

Просто подобрать необходимый формат

Автор - Udik
Дата добавления - 29.08.2015 в 19:39
RAN Дата: Суббота, 29.08.2015, 19:43 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А чего нужно-то?

Да все очень просто.
Записать макросом не отвлеченный формат, а, конкретно, формат ячейки А1.
[p.s.]не пойму почему, но у меня глючит[/p.s.]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Суббота, 29.08.2015, 19:46
 
Ответить
Сообщение
А чего нужно-то?

Да все очень просто.
Записать макросом не отвлеченный формат, а, конкретно, формат ячейки А1.
[p.s.]не пойму почему, но у меня глючит[/p.s.]

Автор - RAN
Дата добавления - 29.08.2015 в 19:43
buchlotnik Дата: Суббота, 29.08.2015, 19:46 | Сообщение № 4
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
так? [vba]
Код
Sub FORM()
Dim S$
      S = [A1].NumberFormat
      For I = 1 To 5
      [A1].Offset(I, 0).NumberFormat = S
      Next I
End Sub
[/vba]
К сообщению приложен файл: NumberFormat.xlsm (12.9 Kb)


Сообщение отредактировал buchlotnik - Суббота, 29.08.2015, 19:46
 
Ответить
Сообщениетак? [vba]
Код
Sub FORM()
Dim S$
      S = [A1].NumberFormat
      For I = 1 To 5
      [A1].Offset(I, 0).NumberFormat = S
      Next I
End Sub
[/vba]

Автор - buchlotnik
Дата добавления - 29.08.2015 в 19:46
RAN Дата: Суббота, 29.08.2015, 19:48 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Не.
Нужно на новом листе.
[vba]
Код
With Worksheets. Add
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Суббота, 29.08.2015, 19:55
 
Ответить
СообщениеНе.
Нужно на новом листе.
[vba]
Код
With Worksheets. Add
[/vba]

Автор - RAN
Дата добавления - 29.08.2015 в 19:48
buchlotnik Дата: Суббота, 29.08.2015, 19:58 | Сообщение № 6
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
странно, у меня пашет [vba]
Код
Sub FORM()
Dim S$
     S = Sheets(1).Cells(1, 1).NumberFormat
     ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
     n = Worksheets.Count
     For i = 1 To 5
     Sheets(n).Cells(i, 1).NumberFormat = S
     Sheets(n).Cells(i, 1).Value = i
     Next
End Sub

[/vba]
К сообщению приложен файл: 7870901.xlsm (17.6 Kb)
 
Ответить
Сообщениестранно, у меня пашет [vba]
Код
Sub FORM()
Dim S$
     S = Sheets(1).Cells(1, 1).NumberFormat
     ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
     n = Worksheets.Count
     For i = 1 To 5
     Sheets(n).Cells(i, 1).NumberFormat = S
     Sheets(n).Cells(i, 1).Value = i
     Next
End Sub

[/vba]

Автор - buchlotnik
Дата добавления - 29.08.2015 в 19:58
Udik Дата: Суббота, 29.08.2015, 20:01 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
конкретно, формат ячейки А1

тогда типа такого

[vba]
Код

Public Sub testFormat()
With ActiveSheet
Cells(1, 2).Value = .Cells(1, 1).NumberFormatLocal
Cells(1, 3).Value = .Cells(1, 1).NumberFormat
End With
End Sub
[/vba]


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Суббота, 29.08.2015, 20:07
 
Ответить
Сообщение
конкретно, формат ячейки А1

тогда типа такого

[vba]
Код

Public Sub testFormat()
With ActiveSheet
Cells(1, 2).Value = .Cells(1, 1).NumberFormatLocal
Cells(1, 3).Value = .Cells(1, 1).NumberFormat
End With
End Sub
[/vba]

Автор - Udik
Дата добавления - 29.08.2015 в 20:01
RAN Дата: Суббота, 29.08.2015, 20:11 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Udik, хорошее решение.
Одна беда
Типа такого
[vba]
Код
Cells(1, 2).Value = .Cells(1, 1).NumberFormatLocal
Cells(1, 3).Value = .Cells(1, 1).NumberFormat
[/vba]
не существует.

Добавляется пустой лист. на нем, в определенном столбце, нужно поставить определеный формат.
[p.s.]см. #5[/p.s.]

[p.s.][p.s.]Миш, ответ прозевал, но и в твой адрес то же[/p.s.][/p.s.]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Суббота, 29.08.2015, 20:19
 
Ответить
СообщениеUdik, хорошее решение.
Одна беда
Типа такого
[vba]
Код
Cells(1, 2).Value = .Cells(1, 1).NumberFormatLocal
Cells(1, 3).Value = .Cells(1, 1).NumberFormat
[/vba]
не существует.

Добавляется пустой лист. на нем, в определенном столбце, нужно поставить определеный формат.
[p.s.]см. #5[/p.s.]

[p.s.][p.s.]Миш, ответ прозевал, но и в твой адрес то же[/p.s.][/p.s.]

Автор - RAN
Дата добавления - 29.08.2015 в 20:11
EvgenyD Дата: Суббота, 29.08.2015, 20:54 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
RAN, если правильно понял вопрос, то возможно с помощью [vba]
Код
.PasteSpecial Paste:=xlPasteFormats
[/vba]?
 
Ответить
СообщениеRAN, если правильно понял вопрос, то возможно с помощью [vba]
Код
.PasteSpecial Paste:=xlPasteFormats
[/vba]?

Автор - EvgenyD
Дата добавления - 29.08.2015 в 20:54
Udik Дата: Суббота, 29.08.2015, 21:01 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Добавляется пустой лист. на нем, в определенном столбце, нужно поставить определеный формат

Так в чем проблема-то? Если знаете имя нового листа и номер столбца подставьте в левую часть
[vba]
Код

Public Sub testFormat()
Const clNum As Integer = 1
Const lName As String = "out", lName2 As String = "out2" 'имя листа

If SheetCheck(lName) = 0 Then Sheets.Add.Name = lName 'добавляем листы
If SheetCheck(lName2) = 0 Then Sheets.Add.Name = lName2
With ActiveSheet
Worksheets("out").Columns(clNum).NumberFormatLocal = .Cells(1, 1).NumberFormatLocal
Worksheets("out2").Columns(clNum).NumberFormat = .Cells(1, 1).NumberFormat
End With
End Sub
Function SheetCheck(ShName As String) As Byte
      For Each ws In ActiveWorkbook.Sheets
          If ws.Name = ShName Then SheetCheck = 1: Exit For
      Next ws
End Function
[/vba]
ненужные строки убрать/закоментить
К сообщению приложен файл: eAI.xlsm (18.3 Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Суббота, 29.08.2015, 21:03
 
Ответить
Сообщение
Добавляется пустой лист. на нем, в определенном столбце, нужно поставить определеный формат

Так в чем проблема-то? Если знаете имя нового листа и номер столбца подставьте в левую часть
[vba]
Код

Public Sub testFormat()
Const clNum As Integer = 1
Const lName As String = "out", lName2 As String = "out2" 'имя листа

If SheetCheck(lName) = 0 Then Sheets.Add.Name = lName 'добавляем листы
If SheetCheck(lName2) = 0 Then Sheets.Add.Name = lName2
With ActiveSheet
Worksheets("out").Columns(clNum).NumberFormatLocal = .Cells(1, 1).NumberFormatLocal
Worksheets("out2").Columns(clNum).NumberFormat = .Cells(1, 1).NumberFormat
End With
End Sub
Function SheetCheck(ShName As String) As Byte
      For Each ws In ActiveWorkbook.Sheets
          If ws.Name = ShName Then SheetCheck = 1: Exit For
      Next ws
End Function
[/vba]
ненужные строки убрать/закоментить

Автор - Udik
Дата добавления - 29.08.2015 в 21:01
_Boroda_ Дата: Суббота, 29.08.2015, 22:02 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Андрей, я не очень понял вопрос, но, возможно, ты про вот так?[vba]
Код
    Sheets.Add
     ActiveSheet.Range("A:A").NumberFormatLocal = Лист1.Range("A1").NumberFormatLocal
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеАндрей, я не очень понял вопрос, но, возможно, ты про вот так?[vba]
Код
    Sheets.Add
     ActiveSheet.Range("A:A").NumberFormatLocal = Лист1.Range("A1").NumberFormatLocal
[/vba]

Автор - _Boroda_
Дата добавления - 29.08.2015 в 22:02
RAN Дата: Суббота, 29.08.2015, 22:32 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Саш, в оригинале код типа этого
[vba]
Код
Sub test()
    [a2:a10].NumberFormatLocal = "_(р.* # ##0,00_);_(р.* (# ##0,00);_(р.* ""-""??_);_(@_)"
End Sub
[/vba]
выдавал погоду в Африке.Как я его ни крутил..
Порешили - денежный формат рулит!


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Суббота, 29.08.2015, 22:33
 
Ответить
СообщениеСаш, в оригинале код типа этого
[vba]
Код
Sub test()
    [a2:a10].NumberFormatLocal = "_(р.* # ##0,00_);_(р.* (# ##0,00);_(р.* ""-""??_);_(@_)"
End Sub
[/vba]
выдавал погоду в Африке.Как я его ни крутил..
Порешили - денежный формат рулит!

Автор - RAN
Дата добавления - 29.08.2015 в 22:32
RAN Дата: Суббота, 29.08.2015, 22:46 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
EvgenyD, Udik, ну нечего копировать. Нечего!
Нет ячейки А1 в природе.

Вот скажите, как нужно было сформулировать вопрос, чтобы избежать предложений КОПИРОВАТЬ формат конкретной ячейки?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеEvgenyD, Udik, ну нечего копировать. Нечего!
Нет ячейки А1 в природе.

Вот скажите, как нужно было сформулировать вопрос, чтобы избежать предложений КОПИРОВАТЬ формат конкретной ячейки?

Автор - RAN
Дата добавления - 29.08.2015 в 22:46
buchlotnik Дата: Суббота, 29.08.2015, 23:28 | Сообщение № 14
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
блин, а ларчик просто открывался: макрорекодер рулит B) [vba]
Код
Sub test()
[a1:a10].NumberFormat = "_(""р.""* #,##0.00_);_(""р.""* (#,##0.00);_(""р.""* ""-""??_);_(@_)"
End Sub
[/vba]
или
[vba]
Код
Sub test2()
[a1:a10].NumberFormatLocal = "_(""р.""* # ##0,00_);_(""р.""* (# ##0,00);_(""р.""* ""-""??_);_(@_)"
End Sub
[/vba]
UPD и так в догонку (делать нечего было :) ) - почему-то обозначение цвета шрифта "кавычить" не надо: [vba]
Код
Sub test3()
[a1:a10].NumberFormat = "_(""р.""* #,##0.00_);[Red]_(""р.""* (#,##0.00);_(""р.""* ""-""??_);_(@_)"
End Sub
Sub test4()
[a1:a10].NumberFormatLocal = "_(""р.""* # ##0,00_);[Красный]_(""р.""* (# ##0,00);_(""р.""* ""-""??_);_(@_)"
End Sub
[/vba] видимо от настроек локальных зависит
К сообщению приложен файл: 4471131-1-.xlsm (16.6 Kb)


Сообщение отредактировал buchlotnik - Воскресенье, 30.08.2015, 01:32
 
Ответить
Сообщениеблин, а ларчик просто открывался: макрорекодер рулит B) [vba]
Код
Sub test()
[a1:a10].NumberFormat = "_(""р.""* #,##0.00_);_(""р.""* (#,##0.00);_(""р.""* ""-""??_);_(@_)"
End Sub
[/vba]
или
[vba]
Код
Sub test2()
[a1:a10].NumberFormatLocal = "_(""р.""* # ##0,00_);_(""р.""* (# ##0,00);_(""р.""* ""-""??_);_(@_)"
End Sub
[/vba]
UPD и так в догонку (делать нечего было :) ) - почему-то обозначение цвета шрифта "кавычить" не надо: [vba]
Код
Sub test3()
[a1:a10].NumberFormat = "_(""р.""* #,##0.00_);[Red]_(""р.""* (#,##0.00);_(""р.""* ""-""??_);_(@_)"
End Sub
Sub test4()
[a1:a10].NumberFormatLocal = "_(""р.""* # ##0,00_);[Красный]_(""р.""* (# ##0,00);_(""р.""* ""-""??_);_(@_)"
End Sub
[/vba] видимо от настроек локальных зависит

Автор - buchlotnik
Дата добавления - 29.08.2015 в 23:28
_Boroda_ Дата: Воскресенье, 30.08.2015, 01:33 | Сообщение № 15
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Как я его ни крутил.

Дык, у тебя же в самом формате кавычки. А их тоже обкавычить нужно
[vba]
Код
[a2:a10].NumberFormatLocal = "_(р.* # ##0,00_);_(р.* (# ##0,00);_(р.* "" - ""??_);_(@_)"
[/vba]
[vba]
Код
[a2:a10].NumberFormat = "_(р.* # ##0,00_);_(р.* (# ##0,00);_(р.* "" - ""??_);_(@_)"
[/vba]
Последняя, как мы с Михаилом выяснили в ходе переписки, даже лучше.
Добавлено
почему-то обозначение цвета шрифта "кавычить" не надо:

Рубли тоже не нужно. Вся засада именно в куске
[vba]
Код
* ""-""??_
[/vba]
Добавлено
Как оказалось, если символ денег не "р", то все хуже. Тогда или кавычки, как у Михаила, или слешики
[vba]
Код
[a2:a10].NumberFormatLocal = "_(\ж\.* # ##0,00_);[Красный]_(\ж\.* (# ##0,00);_(\ж\.* ""-""??_);_(@_)"
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Как я его ни крутил.

Дык, у тебя же в самом формате кавычки. А их тоже обкавычить нужно
[vba]
Код
[a2:a10].NumberFormatLocal = "_(р.* # ##0,00_);_(р.* (# ##0,00);_(р.* "" - ""??_);_(@_)"
[/vba]
[vba]
Код
[a2:a10].NumberFormat = "_(р.* # ##0,00_);_(р.* (# ##0,00);_(р.* "" - ""??_);_(@_)"
[/vba]
Последняя, как мы с Михаилом выяснили в ходе переписки, даже лучше.
Добавлено
почему-то обозначение цвета шрифта "кавычить" не надо:

Рубли тоже не нужно. Вся засада именно в куске
[vba]
Код
* ""-""??_
[/vba]
Добавлено
Как оказалось, если символ денег не "р", то все хуже. Тогда или кавычки, как у Михаила, или слешики
[vba]
Код
[a2:a10].NumberFormatLocal = "_(\ж\.* # ##0,00_);[Красный]_(\ж\.* (# ##0,00);_(\ж\.* ""-""??_);_(@_)"
[/vba]

Автор - _Boroda_
Дата добавления - 30.08.2015 в 01:33
RAN Дата: Воскресенье, 30.08.2015, 10:16 | Сообщение № 16
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Да уж. С кавычками я затупил.....
Последняя, как мы с Михаилом выяснили в ходе переписки, даже лучше.

Только работает криво (у меня)
[vba]
Код
    ActiveCell.NumberFormat = "_(р.* # ##0,00_);_(р.* (# ##0,00);_(р.* "" - ""??_);_(@_)"
     ActiveCell.NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* "" - ""??_);_(@_)"
[/vba]
А с баксом нормально.
К сообщению приложен файл: 0445531.jpg (4.2 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеДа уж. С кавычками я затупил.....
Последняя, как мы с Михаилом выяснили в ходе переписки, даже лучше.

Только работает криво (у меня)
[vba]
Код
    ActiveCell.NumberFormat = "_(р.* # ##0,00_);_(р.* (# ##0,00);_(р.* "" - ""??_);_(@_)"
     ActiveCell.NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* "" - ""??_);_(@_)"
[/vba]
А с баксом нормально.

Автор - RAN
Дата добавления - 30.08.2015 в 10:16
Udik Дата: Воскресенье, 30.08.2015, 13:05 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
избежать предложений КОПИРОВАТЬ формат конкретной ячейки

точно не так:
Записать макросом не отвлеченный формат, а, конкретно, формат ячейки А1


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
Сообщение
избежать предложений КОПИРОВАТЬ формат конкретной ячейки

точно не так:
Записать макросом не отвлеченный формат, а, конкретно, формат ячейки А1

Автор - Udik
Дата добавления - 30.08.2015 в 13:05
buchlotnik Дата: Воскресенье, 30.08.2015, 15:10 | Сообщение № 18
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Цитата
Только работает криво (у меня)
у меня тоже B) - потому и докавычил
 
Ответить
Сообщение
Цитата
Только работает криво (у меня)
у меня тоже B) - потому и докавычил

Автор - buchlotnik
Дата добавления - 30.08.2015 в 15:10
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Формат ячейки в макрос (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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