Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Помогите с VBA и Excel Добавлено: 01.06.05 13:19  

Автор вопроса:  Данила
1.Как можно обратиться к листу в Excel не зная его имени?
2.Как можно применить макрос ко всей книге Excel?
3.Как изменить имя листа на кодовое?

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 01.06.05 15:23
1. По номеру.
2. Что имел ты в виду?
3. .Name = .CodeName?

Ответить

Номер ответа: 2
Автор ответа:
 Данила



Вопросов: 2
Ответов: 9
 Профиль | | #2 Добавлено: 01.06.05 15:36
Есть некий макрос, который необходимо применить к каждой странице Книги. Допустим поменять шрифт на всех страницах. Как это можно осуществить?

Ответить

Номер ответа: 3
Автор ответа:
 ActiveX



Вопросов: 0
Ответов: 73
 Профиль | | #3 Добавлено: 01.06.05 18:18
For Each ws In Worksheets
    With ws.Range("A1";).Font
        .Size = 20
        .ColorIndex = 3
        .Name = "Tahoma"
    End With
Next

--------------

Worksheets.Select
Range("A1";).Select

With Selection.Font
    .Size = 20
    .ColorIndex = 3
    .Name = "Tahoma"
End With

Ответить

Номер ответа: 4
Автор ответа:
 Данила



Вопросов: 2
Ответов: 9
 Профиль | | #4 Добавлено: 03.06.05 14:16
Sub Макрос2()
'
' Макрос2 Макрос
' Макрос записан 13.05.2005 (User)
Dim myOlApp As Object
Dim MyWo As Excel.Workbook
Dim mysheet As Excel.Worksheet
Dim n As Integer
Set myOlApp = CreateObject("excel.Application";)
Set MyWo = myOlApp.Workbooks.Open("C:\Книга3.xls";)
Debug.Print MyWo.Worksheets.Count
For Each mysheet In Worksheets
    With mysheet.Range("A1";).Font
   ;Debug.Print mysheet.CodeName
      Cells.Replace What:="*Табл*", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Cells.Select
    Range("M14";).Activate
        Cells.Select
    Range("M14";).Select
    With Selection.Font
        .Name = "Times New Roman"
        .Size = 7.5
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
        Range("B55";).Select
    End With

    End With
Next
Set mysheet = Nothing
MyWo.Close
Set MyWo = Nothing
Set myOlApp = Nothing
End Sub


Чего здесь не правильно???
В идеале она должна на каждой странице удалять слово "Таблица" и менять шрифт на "Times new roman". Я не понимаю почему она не работает!

Ответить

Номер ответа: 5
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #5 Добавлено: 03.06.05 15:01
Скажи мне, как компьютер должен понять, к какому именно листу ты хочешь обратиться, если ты не говоришь ему об этом?
См. первую часть ответа ActiveX.

Ответить

Номер ответа: 6
Автор ответа:
 Данила



Вопросов: 2
Ответов: 9
 Профиль | | #6 Добавлено: 03.06.05 15:25
For Each mysheet In Worksheets
    With mysheet.Range("A1";).Font
End With
Next


Вот же он у меня и используеться

Ответить

Номер ответа: 7
Автор ответа:
 ActiveX



Вопросов: 0
Ответов: 73
 Профиль | | #7 Добавлено: 03.06.05 16:39
For Each ws In Worksheets
    With ws.Cells
        .Replace What:="Таблица", Replacement:=""
        .Font.Name = "Times New Roman"
    End With
Next

- Если оставить "*Табл*" то в результате вместо - Таблица профессионального роста, мы получим -
- Шрифт будет изменен во всех ячейках рабочего листа.

Ответить

Номер ответа: 8
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #8 Добавлено: 03.06.05 17:01
For Each mysheet In Worksheets
    With mysheet.Range("A1";).Font
End With
Next


Вот же он у меня и используеться


Нет, у тебя используется Selection.Font.
Ты правда не видишь разницы?

Ответить

Номер ответа: 9
Автор ответа:
 Данила



Вопросов: 2
Ответов: 9
 Профиль | | #9 Добавлено: 06.06.05 14:57
Спасибо, теперь всё нормально

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам