Смещение по столбцам - Offset
FelixZid
Дата: Понедельник, 11.06.2018, 01:11 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Здравствуйте! Немного не понимаю этого зверя Offset, подскажите пожалуйста. [vba]Код
Private Sub CommandButton12_Click() Dim s As String, p As String, Rng As Range, mychart As Chart p = TextBox6.Text If p > 1 Then Cells(1, 7).Value = p Set Rng = Range(Cells(2, 2), Cells(2 + (p - 1), 2)) Rng.Name = "rng" s = "=SUM(" & Rng.Address(0, 0) & ")/$G$1" z = WorksheetFunction.RoundUp(p / 2, 0) Cells(p + 1, 6).Formula = s Cells(p + 1, 6).AutoFill Range(Cells(p + 1, 6), Cells(Rows.Count, "B").End(xlUp).Offset(, 5)) Set mychart = Worksheets(1).ChartObjects(1).Chart mychart.SetSourceData Source:=Worksheets(1).Range("B:B,G:G") mychart.SeriesCollection(2).ChartType = xlXYScatterSmoothNoMarkers mychart.SeriesCollection(2).Border.Color = RGB(120, 0, 0) mychart.SeriesCollection(2).Format.Line.Weight = 2 fname = ThisWorkbook.Path & Application.PathSeparator & "picture.gif" mychart.Export Filename:=fname, Filtername:="gif" Image1.Picture = LoadPicture(fname) Else MsgBox "Внимание! Введите число большее 1", 16 End If End Sub
[/vba] Проблема заключается в строке: [vba]Код
Cells(p + 1, 6).AutoFill Range(Cells(p + 1, 6), Cells(Rows.Count, "B").End(xlUp).Offset(, 5))
[/vba] Компилятор выводит соответствующее сообщение
Здравствуйте! Немного не понимаю этого зверя Offset, подскажите пожалуйста. [vba]Код
Private Sub CommandButton12_Click() Dim s As String, p As String, Rng As Range, mychart As Chart p = TextBox6.Text If p > 1 Then Cells(1, 7).Value = p Set Rng = Range(Cells(2, 2), Cells(2 + (p - 1), 2)) Rng.Name = "rng" s = "=SUM(" & Rng.Address(0, 0) & ")/$G$1" z = WorksheetFunction.RoundUp(p / 2, 0) Cells(p + 1, 6).Formula = s Cells(p + 1, 6).AutoFill Range(Cells(p + 1, 6), Cells(Rows.Count, "B").End(xlUp).Offset(, 5)) Set mychart = Worksheets(1).ChartObjects(1).Chart mychart.SetSourceData Source:=Worksheets(1).Range("B:B,G:G") mychart.SeriesCollection(2).ChartType = xlXYScatterSmoothNoMarkers mychart.SeriesCollection(2).Border.Color = RGB(120, 0, 0) mychart.SeriesCollection(2).Format.Line.Weight = 2 fname = ThisWorkbook.Path & Application.PathSeparator & "picture.gif" mychart.Export Filename:=fname, Filtername:="gif" Image1.Picture = LoadPicture(fname) Else MsgBox "Внимание! Введите число большее 1", 16 End If End Sub
[/vba] Проблема заключается в строке: [vba]Код
Cells(p + 1, 6).AutoFill Range(Cells(p + 1, 6), Cells(Rows.Count, "B").End(xlUp).Offset(, 5))
[/vba] Компилятор выводит соответствующее сообщениеFelixZid
Ответить
Сообщение Здравствуйте! Немного не понимаю этого зверя Offset, подскажите пожалуйста. [vba]Код
Private Sub CommandButton12_Click() Dim s As String, p As String, Rng As Range, mychart As Chart p = TextBox6.Text If p > 1 Then Cells(1, 7).Value = p Set Rng = Range(Cells(2, 2), Cells(2 + (p - 1), 2)) Rng.Name = "rng" s = "=SUM(" & Rng.Address(0, 0) & ")/$G$1" z = WorksheetFunction.RoundUp(p / 2, 0) Cells(p + 1, 6).Formula = s Cells(p + 1, 6).AutoFill Range(Cells(p + 1, 6), Cells(Rows.Count, "B").End(xlUp).Offset(, 5)) Set mychart = Worksheets(1).ChartObjects(1).Chart mychart.SetSourceData Source:=Worksheets(1).Range("B:B,G:G") mychart.SeriesCollection(2).ChartType = xlXYScatterSmoothNoMarkers mychart.SeriesCollection(2).Border.Color = RGB(120, 0, 0) mychart.SeriesCollection(2).Format.Line.Weight = 2 fname = ThisWorkbook.Path & Application.PathSeparator & "picture.gif" mychart.Export Filename:=fname, Filtername:="gif" Image1.Picture = LoadPicture(fname) Else MsgBox "Внимание! Введите число большее 1", 16 End If End Sub
[/vba] Проблема заключается в строке: [vba]Код
Cells(p + 1, 6).AutoFill Range(Cells(p + 1, 6), Cells(Rows.Count, "B").End(xlUp).Offset(, 5))
[/vba] Компилятор выводит соответствующее сообщениеАвтор - FelixZid Дата добавления - 11.06.2018 в 01:11
FelixZid
Дата: Понедельник, 11.06.2018, 01:12 |
Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Подскажите, как быть? Какое значение в Offset указать? С 1 до 10 пробовал, не помогло
Подскажите, как быть? Какое значение в Offset указать? С 1 до 10 пробовал, не помогло FelixZid
Сообщение отредактировал FelixZid - Понедельник, 11.06.2018, 01:14
Ответить
Сообщение Подскажите, как быть? Какое значение в Offset указать? С 1 до 10 пробовал, не помогло Автор - FelixZid Дата добавления - 11.06.2018 в 01:12
Pelena
Дата: Понедельник, 11.06.2018, 07:25 |
Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19162
Репутация:
4412
±
Замечаний:
±
Excel 365 & Mac Excel
В сообщении об ошибке сказано, что метод Autofill завешен неверно, так что Offset здесь ни при чем. Что сделать-то надо? Смещение или всё же автозаполнение? Может, не Offset, а Resize нужен? Приложите файл с примером и объясните конечную цель
В сообщении об ошибке сказано, что метод Autofill завешен неверно, так что Offset здесь ни при чем. Что сделать-то надо? Смещение или всё же автозаполнение? Может, не Offset, а Resize нужен? Приложите файл с примером и объясните конечную цель Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение В сообщении об ошибке сказано, что метод Autofill завешен неверно, так что Offset здесь ни при чем. Что сделать-то надо? Смещение или всё же автозаполнение? Может, не Offset, а Resize нужен? Приложите файл с примером и объясните конечную цель Автор - Pelena Дата добавления - 11.06.2018 в 07:25
FelixZid
Дата: Понедельник, 11.06.2018, 11:17 |
Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Pelena , необходимо автозаполнение столбца G ("протянуть" формулу) на основе столбца B до последней заполненной ячейки [vba]Код
Cells(Rows.Count, "B").End(xlUp)
[/vba] Может row использовать?
Pelena , необходимо автозаполнение столбца G ("протянуть" формулу) на основе столбца B до последней заполненной ячейки [vba]Код
Cells(Rows.Count, "B").End(xlUp)
[/vba] Может row использовать? FelixZid
Сообщение отредактировал FelixZid - Понедельник, 11.06.2018, 11:24
Ответить
Сообщение Pelena , необходимо автозаполнение столбца G ("протянуть" формулу) на основе столбца B до последней заполненной ячейки [vba]Код
Cells(Rows.Count, "B").End(xlUp)
[/vba] Может row использовать? Автор - FelixZid Дата добавления - 11.06.2018 в 11:17
FelixZid
Дата: Понедельник, 11.06.2018, 11:24 |
Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Pelena , просто к примеру с этим кодом всё ок, работает [vba]Код
Private Sub CommandButton11_Click() Dim s As String, b As String, Rng As Range, mychart As Chart b = TextBox5.Text If b > 1 Then Cells(1, 6).Value = b Set Rng = Range(Cells(2, 2), Cells(2 + (b - 1), 2)) Rng.Name = "rng" s = "=SUM(" & Rng.Address(0, 0) & ")/$F$1" z = WorksheetFunction.RoundUp(b / 2, 0) Cells(b + 1, 6).Formula = s Cells(b + 1, 6).AutoFill Range(Cells(b + 1, 6), Cells(Rows.Count, "B").End(xlUp).Offset(, 4)) Set mychart = Worksheets(1).ChartObjects(1).Chart mychart.SetSourceData Source:=Worksheets(1).Range("B:B,F:F") mychart.SeriesCollection(2).ChartType = xlXYScatterSmoothNoMarkers mychart.SeriesCollection(2).Border.Color = RGB(250, 250, 0) mychart.SeriesCollection(2).Format.Line.Weight = 2 fname = ThisWorkbook.Path & Application.PathSeparator & "picture.gif" mychart.Export Filename:=fname, Filtername:="gif" Image1.Picture = LoadPicture(fname) Else MsgBox "Внимание! Введите число больше 1", 16 End If End Sub
[/vba]
Pelena , просто к примеру с этим кодом всё ок, работает [vba]Код
Private Sub CommandButton11_Click() Dim s As String, b As String, Rng As Range, mychart As Chart b = TextBox5.Text If b > 1 Then Cells(1, 6).Value = b Set Rng = Range(Cells(2, 2), Cells(2 + (b - 1), 2)) Rng.Name = "rng" s = "=SUM(" & Rng.Address(0, 0) & ")/$F$1" z = WorksheetFunction.RoundUp(b / 2, 0) Cells(b + 1, 6).Formula = s Cells(b + 1, 6).AutoFill Range(Cells(b + 1, 6), Cells(Rows.Count, "B").End(xlUp).Offset(, 4)) Set mychart = Worksheets(1).ChartObjects(1).Chart mychart.SetSourceData Source:=Worksheets(1).Range("B:B,F:F") mychart.SeriesCollection(2).ChartType = xlXYScatterSmoothNoMarkers mychart.SeriesCollection(2).Border.Color = RGB(250, 250, 0) mychart.SeriesCollection(2).Format.Line.Weight = 2 fname = ThisWorkbook.Path & Application.PathSeparator & "picture.gif" mychart.Export Filename:=fname, Filtername:="gif" Image1.Picture = LoadPicture(fname) Else MsgBox "Внимание! Введите число больше 1", 16 End If End Sub
[/vba]FelixZid
Ответить
Сообщение Pelena , просто к примеру с этим кодом всё ок, работает [vba]Код
Private Sub CommandButton11_Click() Dim s As String, b As String, Rng As Range, mychart As Chart b = TextBox5.Text If b > 1 Then Cells(1, 6).Value = b Set Rng = Range(Cells(2, 2), Cells(2 + (b - 1), 2)) Rng.Name = "rng" s = "=SUM(" & Rng.Address(0, 0) & ")/$F$1" z = WorksheetFunction.RoundUp(b / 2, 0) Cells(b + 1, 6).Formula = s Cells(b + 1, 6).AutoFill Range(Cells(b + 1, 6), Cells(Rows.Count, "B").End(xlUp).Offset(, 4)) Set mychart = Worksheets(1).ChartObjects(1).Chart mychart.SetSourceData Source:=Worksheets(1).Range("B:B,F:F") mychart.SeriesCollection(2).ChartType = xlXYScatterSmoothNoMarkers mychart.SeriesCollection(2).Border.Color = RGB(250, 250, 0) mychart.SeriesCollection(2).Format.Line.Weight = 2 fname = ThisWorkbook.Path & Application.PathSeparator & "picture.gif" mychart.Export Filename:=fname, Filtername:="gif" Image1.Picture = LoadPicture(fname) Else MsgBox "Внимание! Введите число больше 1", 16 End If End Sub
[/vba]Автор - FelixZid Дата добавления - 11.06.2018 в 11:24
RAN
Дата: Понедельник, 11.06.2018, 19:43 |
Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
к примеру с этим кодом всё ок, работает
А почему правильный код не должен работать? Если вам нужно протянуть формулу на 1 столбец, то и протягивайте на 1, а если на 2, то протягивать нужно 2 ячейки.
к примеру с этим кодом всё ок, работает
А почему правильный код не должен работать? Если вам нужно протянуть формулу на 1 столбец, то и протягивайте на 1, а если на 2, то протягивать нужно 2 ячейки.RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение к примеру с этим кодом всё ок, работает
А почему правильный код не должен работать? Если вам нужно протянуть формулу на 1 столбец, то и протягивайте на 1, а если на 2, то протягивать нужно 2 ячейки.Автор - RAN Дата добавления - 11.06.2018 в 19:43
FelixZid
Дата: Понедельник, 11.06.2018, 21:51 |
Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
RAN , хорошо, что тогда с первым кодом не так?
RAN , хорошо, что тогда с первым кодом не так?FelixZid
Ответить
Сообщение RAN , хорошо, что тогда с первым кодом не так?Автор - FelixZid Дата добавления - 11.06.2018 в 21:51
Pelena
Дата: Вторник, 12.06.2018, 06:25 |
Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19162
Репутация:
4412
±
Замечаний:
±
Excel 365 & Mac Excel
необходимо автозаполнение столбца G
А заполняете шестой столбец (F)
необходимо автозаполнение столбца G
А заполняете шестой столбец (F)Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение необходимо автозаполнение столбца G
А заполняете шестой столбец (F)Автор - Pelena Дата добавления - 12.06.2018 в 06:25
RAN
Дата: Вторник, 12.06.2018, 08:26 |
Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Я же написал, в чем дело. Вы пытаетесь протянуть одну ячейку по двум столбцам.
Я же написал, в чем дело. Вы пытаетесь протянуть одну ячейку по двум столбцам. RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Я же написал, в чем дело. Вы пытаетесь протянуть одну ячейку по двум столбцам. Автор - RAN Дата добавления - 12.06.2018 в 08:26
FelixZid
Дата: Вторник, 12.06.2018, 12:08 |
Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
RAN , Pelena , да, да, точно, понял, спасибо)))
RAN , Pelena , да, да, точно, понял, спасибо)))FelixZid
Ответить
Сообщение RAN , Pelena , да, да, точно, понял, спасибо)))Автор - FelixZid Дата добавления - 12.06.2018 в 12:08