Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Выбор столбца, который был выбран пользователем Добавлено: 22.08.08 15:34  

Автор вопроса:  Serga
Как вот эту часть кода "wc.Range("M" & i).Interior.Color" заменить так, чтобы в ней использовался не столбец М, а столбец, который был выбран в ChooseRange?
Благодарю!

Public k As Range
Public r As Range

Sub ChooseRange()
Sheets("Explication").Activate
Sheets("Color").Columns(2).Clear
Set r = Application.InputBox("Выбери заголовок нужного столбца и нажми ОК", , Default:="A1", Type:=8)
Set r = r.Cells(1, 1)
If r.Cells(1, 1).Row <> 1 Then Exit Sub
Set k = Range(r, Cells(Rows.Count, r.Column).End(xlUp))
k.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets("Color").Cells(1, 2), Unique:=True
Set r = Range(Sheets("Color").Cells(2, 2), Sheets("Color").Cells(Sheets("Color").Rows.Count, 2).End(xlUp))
End Sub

Sub ColorAllShapes2()
Dim i As Integer, ws As Worksheet, wc As Worksheet
Set ws = Sheets("Plan"): Set wc = Sheets("Explication")
For i = 2 To ws.Shapes.Count
ws.Shapes(wc.Range("A" & i).Value).Fill.ForeColor.RGB = wc.Range("M" & i).Interior.Color
Next i
End Sub

Ответить

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

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



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #1 Добавлено: 22.08.08 21:16
Что бы пользователь не выделил столбец, строку или ячейку, изменить цвет заливки можно так:

Selection.Interior.ColorIndex = 48

Ответить

Номер ответа: 2
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #2 Добавлено: 22.08.08 22:01
Попробуй вот так:
Public k As Range
Public r As Range
Public Col As Range

Sub ChooseRange()
Sheets("Explication";).Activate
Sheets("Color";).Columns(2).Clear
Set r = Application.InputBox("Выбери заголовок нужного столбца и нажми ОК", , Default:="A1", Type:=8)
Set r = r.Cells(1, 1)
If r.Cells(1, 1).Row <> 1 Then Exit Sub
Set k = Range(r, Cells(Rows.Count, r.Column).End(xlUp))
k.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets("Color";).Cells(1, 2), Unique:=True
Col = r.Column
Set r = Range(Sheets("Color";).Cells(2, 2), Sheets("Color";).Cells(Sheets("Color";).Rows.Count, 2).End(xlUp))
End Sub

Sub ColorAllShapes2()
Dim i As Integer, ws As Worksheet, wc As Worksheet
Set ws = Sheets("Plan";): Set wc = Sheets("Explication";)
For i = 2 To ws.Shapes.Count
  Call ChooseRange
  ws.Shapes(wc.Range("A" & i).Value).Fill.ForeColor.RGB = wc.Cells(i, Col).Interior.Color
Next i
End Sub

Ответить

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



Вопросов: 1
Ответов: 2
 Профиль | | #3 Добавлено: 23.08.08 07:12
К сожалению, ошибка на этой строке Col = r.Column.
Пишет Object variable not set.

Ответить

Номер ответа: 4
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #4 Добавлено: 23.08.08 16:03
А так ?
...
Set r = Application.InputBox("Выбери заголовок нужного столбца и нажми ОК", , Default:="A1", Type:=8)
Set r = r.Cells(1, 1)
Col = r.Column
If r.Cells(1, 1).Row <> 1 Then Exit Sub
Set k = Range(r, Cells(Rows.Count, r.Column).End(xlUp))
...

Ответить

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



Вопросов: 1
Ответов: 2
 Профиль | | #5 Добавлено: 25.08.08 10:46
Все заработало. Со всем разобрался. СПАСИБО!!!!!!!!

Ответить

Страница: 1 |

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



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