|
|
|
Excel 2007 - Subtotal, результаты сильно сдвигаются вниз :(
|
|||
|---|---|---|---|
|
#18+
Доброго вечера, коллеги. С экселом знаком мало, написал вот выборку, да группировку. Проблема вот в чем: моя выборка возвращает произвольное число записей. Допустим, в первый раз - 20 тысяч. И соответсвенно, Grand Total- идет в 20 001 строке. Все хорошо. А при втором вызове, уже с другими датами, - возвращается 50 записей. А Grand Total- остается в 20001 строке. Ну и мелочь еще одна: когда делаю: Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(7, 8, 10, 11), Replace:=True, PageBreaks:=False, SummaryBelowData:=True - выдается мессажд, точно ли я хочу включить строчку над данными в группировку. Как бы его убрать? Private Sub GetDate() DisplayAlerts = False If Sheet1.Range("b2").Value = "" Then MsgBox "Не введена дата начала выборки" Range("B2").Select GoTo cls End If If Sheet1.Range("d2").Value = "" Then MsgBox "Не введена дата окончания выборки" Range("d2").Select GoTo cls End If ' чистим все. Range("B9").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select Selection.ClearContents Range("B9").Select Dim cnPubs As ADODB.Connection Set cnPubs = New ADODB.Connection ' Строка подключения. Dim strConn As String 'Использование поставщика OLE DB SQL Server. strConn = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=User;Password=User;Data Source=192.168.11.3;" 'Открытие подключения. cnPubs.Open strConn ' Создание объекта набора записей. Dim rsPubs As ADODB.Recordset Set rsPubs = New ADODB.Recordset Dim SQLstr As String SQLstr = "select * from мояТабличнаяФункция (" + "'" + Format(Sheet1.Range("b2"), "mm-dd-yyyy") + "'" + "," + "'" + Format(Sheet1.Range("D2"), "mm-dd-yyyy") + "'" + ", " + IIf(Sheet1.Range("G2") = "", "NULL", "'" + Sheet1.Range("G2") + "'") + ") order by 1, 2" With rsPubs ' Присваивание объекта Connection. .ActiveConnection = cnPubs ' Извлечение необходимых записей. .Open SQLstr If .EOF And .BOF Then MsgBox "Не найдены данные по указанным параметрам. Проверьте даты - и название поставщика" Range("B2").Select GoTo CloseRst End If Sheet1.Range("B9").CopyFromRecordset rsPubs MsgBox "Получены данные по указанным датам" ' теперь все выделил Range("B9").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select ' и сделал подитог Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(7, 8, 10, 11), Replace:=True, PageBreaks:=False, SummaryBelowData:=True ' и в завершении всего Range("B2").Select .Close End With CloseRst: cnPubs.Close Set rsPubs = Nothing Set cnPubs = Nothing DisplayAlerts = False cls: End Sub ' -- Sheet1.Range. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2012, 20:40 |
|
||
|
|

start [/forum/topic.php?fid=61&tid=2175892]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
193ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 464ms |

| 0 / 0 |
