Страница: 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
Ответить
|
Номер ответа: 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
Ответить
|
Страница: 1 |
Поиск по форуму