2016-08-03 3 views
0

Я делаю некоторые искровые линии, и я пытаюсь ссылаться на диапазон для исходных данных. Проблема в том, что Range добавляется каждый месяц. Мне нужно, чтобы иметь возможность использовать диапазон от известной первой клетки до тех пор, пока не найдет value.Offset (0, -1)Выбор диапазона, который находится от одной ячейки до найденного значения?

Dif wb As Workbook 
Dif ws As Worksheet 

    Set wb = Workbooks("HardDrive location") 
    Set ws = wb.Worksheets("Sheet1") 

wb.ws.Range.Rows(4).Cells.Find("XXX").Offset(0, 1).Select 

Selection.SparklineGroups.Add Type:=xlSparkLine, SourceData:= Range("D4", wb.ws.Range.Rows(4).Find("XXX").Offset(0,-1)) 

'Other Parameters are below, but there aren't any problems past this point' 

Не совсем уверен, как получить, чтобы работать. Любая помощь будет оценена по достоинству.

+1

Предположительно, вы можете установить диапазон динамически с помощью wb.ws.Range.Rows (4) .Cells.Find ("XXX") Смещение (0, 1) .Address , Не уверенный в своей формулировке, что вам нужно использовать в качестве диапазона. –

+0

Ну, в зависимости от того, где вы стоите на VBA и Excel, это может быть слишком большим с точки зрения обучения. Тем не менее, я очень увлечен, я настоятельно рекомендую вам узнать о работе с таблицами вместо необработанных диапазонов для такого рода вещей. Таблицы будут управлять для вас активным диапазоном, упростить обращение к конкретным столбцам по именам и т. Д. Они делают VBA намного проще в использовании. –

+0

@Francky_V Знаете ли вы о каких-либо хороших ресурсах для обучения это? – Keizzerweiss

ответ

0

Редакцией:.

Sub Test() 

Dim wb As Workbook 
Dim ws As Worksheet 
Dim rng As Range 

Set wb = ActiveWorkbook 
Set ws = wb.Worksheets("Sheet1") 
Set rng = ws.Rows(4).Cells.Find("XXX").Offset(0, -1) 

Range(rng.Offset(0, 1).Address).SparklineGroups.Add Type:=xlSparkLine, SourceData:=Range("D4" & ":" & rng.Address).Address 

End Sub 
+0

Кажется, не работает. Я получил это сообщение. Ошибка времени выполнения '1004': Не удалось выполнить метод 'Range' объекта'_Global ' – Keizzerweiss

+0

В какой строке это произошло? Вы добавили свой диапазон в 'yourRange'? – Brian

+0

'wb.ws.Range.Rows (4) .Cells.Find (" XXX "). Смещение (0, -1) .SparklineGroups.Add Тип: = xlSparkLine, SourceData: = Range (" D4 "&": " & rng) 'Это все одна строка. – Keizzerweiss

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