2015-03-16 3 views
0

Можно ли выбрать лист в зависимости от значения в ячейке. НапримерВыбор листа из значения в ячейке

Col_1  Col_2  Col_3 

    gor   100  jan 
    mack  60   jan 
    john  40   mar---->this data 
    ..... So on 

Здесь я проверка для лиц, которые имеют менее 50 часов, и если у них есть 50 часов, то я должен пойти на этот лист и пометить их, чтобы представлять их. здесь john имеет менее 50 часов, тогда мне нужно получить имя листа из col_3, который находится здесь в марте. Я должен перейти на этот маркер и пометить их. Мой вопрос в том, что. Можно ли выбрать или получить имя листа на основе значения в ячейке.

+0

Если вы знаете строку/col для этой ячейки, вы можете использовать 'Range (...). Value', чтобы получить значение в ячейке, и да, использовать его для активации другого листа, где' ... '- это ячейка, например,« C4 ». Вы также можете использовать 'Cells (row, col) .Value'. –

+0

'ws = Рабочие листы (Рабочие листы (« Отчет »). Диапазон (« H »и intRow1) .Value) .Activate' –

+0

@Ryan J Это то, что я сделал до сих пор, но возвращающий ошибку, потому что он принимает только дату, например. Имя листа - Мар-15, и это то, что находится в ячейке, но оно только получает данные, как в (13/3/15), но нет названного им листа. Есть только март-15. И я хочу, чтобы это воспринималось как есть. Любое предложение? –

ответ

0

Об этой линии WS = Worksheets (Worksheets ("Отчет") Range ("H" & intRow1) .Value.) .Activate -

Если вы хотите, чтобы выбрать или активировать любое значение из определенного листа, то этот лист должен быть активирован o/w, что дает ошибку.

0

Воспользуйтесь приведенным ниже кодом. Он написан только для активации, но может быть расширен для диапазона ячейки.

Dim sname As String 

If ActiveCell.Value < 50 Then 
    sname = ActiveCell.Offset(0, 1).Value & "-" & "15" 
    Sheets(sname).Select 

End If 
1

Если значение ячейки является строка даты, вы можете использовать Format, чтобы поместить его в формат строки вам требуется. Например, если ячейка содержит "3/15/15", вы можете превратить это имя листа "Mar-15", используя код ниже:

Dim dateVal As String 
' assume this is your active sheet 
Worksheets(1).Activate 

' for simplicity, just set a date 
Cells(1, 1).Value = "3/15/15" 

' read the date from the cell and format to get month name 
dateVal = Format(Cells(1, 1).Value, "mmm-YY") 
MsgBox ("Month from Date: " & dateVal) 

Выходные данные показывают:

enter image description here

Обратите внимание, что вам может потребоваться настроить формат даты, поскольку я работаю с англо-английским форматом, но концепция заключается в форматировании того, что содержит значение в ячейке, в том, что вы хотите.

Смежные вопросы