Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Помогите с Excel!!! Добавлено: 27.05.08 01:23  

Автор вопроса:  zerofx
Привет всем! У меня воопрос - эсть таблица, в ней надо сумировать значения 2-х ячеэк в третю...
Но внизу стоят подписи ячеэк (что они виполняют и значат...) - всьо ето я записал в макрос...
А теперь сам воопрос - как зделать так чтоби не зависимо от количества строк - макрос роботал
только да строки с текстом в ячейках?

   Єсть и роботаєт!
 ______________________
| 1| 2| 3|
 ----------------------
|значениэ|значениэ|сума|
 ----------------------

  Надо чтоби сумированиє
  роботалло только до
  строки с текстом
 ______________________
| 1| 2| 3|
 ----------------------
| 4| 5| 6|
 ----------------------
| n...| n...|n...|
 ----------------------
|значениэ|значениэ|сума|
 ----------------------

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 StrongMax



Вопросов: 1
Ответов: 4
 Профиль | | #1 Добавлено: 27.05.08 10:01
Проверяй условие:
Do While InStr("0123456789-.",Left$(Trim$(Str$(Cell(i,j).Value)),1))>0
' ВЫРАЖЕНИЯ
Loop

Ответить

Номер ответа: 2
Автор ответа:
 Smith



ICQ: ненавижу 

Вопросов: 28
Ответов: 317
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #2
Добавлено: 27.05.08 10:27
zerofx
хочешь узнать номер последней не пустой строки?
или нужно определить цифры или текст в ячейке?

Ответить

Номер ответа: 3
Автор ответа:
 zerofx



Вопросов: 1
Ответов: 6
 Профиль | | #3 Добавлено: 27.05.08 13:10
Мне надо чтоби формула сумированиє роботала независимо сколько строк єсть 1-на или 300... Но вожно то чтоби функция сумми роботала только до той строки где єсть текст, а ето конечно буде в самом конце, тоєсть в последней строке... Я хотел би чтоби она била. как ето точнеє сказать гибкой к количиству... Понимаєш? Чтоби роботала с той масой чисел которая єсть...

Ответить

Номер ответа: 4
Автор ответа:
 Smith



ICQ: ненавижу 

Вопросов: 28
Ответов: 317
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #4
Добавлено: 28.05.08 08:20
В Excel-e скопируй и вставь сюда свой макрос.
Я посмотрю и напишу чтобы правильно работал.

Ответить

Номер ответа: 5
Автор ответа:
 zerofx



Вопросов: 1
Ответов: 6
 Профиль | | #5 Добавлено: 04.06.08 01:36
Извини что так долго не писал - бил занят... Вот посмотри
сама таблица

 А В С
1|1 1 2
2| 2222 1 2223
3| 1564 1 1565
4| 1553 1 1554
5| 79848 1 79849
6| число ярлык

(Надо чтобы числа суммировались только до строки где єсть текст, не зависимости в одной ячейке текс или в каждой...)

А ето макрос которой сумируєт ячейки

 
Sub Макрос2()
'
' Макрос2 Макрос
' Макрос записан 04.06.2008 (Admin)
'

'
    Selection.AutoFill Destination:=Range("C1:C5";), Type:=xlFillDefault
    Range("C1:C5";).Select
End Sub

Ответить

Номер ответа: 6
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #6 Добавлено: 04.06.08 06:16

Sub Макрос2()
'
' Макрос2 Макрос
' Макрос записан 04.06.2008 (Admin)
'
    Dim Строка As Long

    For Строка = 1 To ActiveSheet.UsedRange.Rows.Count - vbNull
        Cells(Строка, 3).FormulaR1C1 = "=SUM(RC[-2]:RC[-1];)"
    Next

End Sub

Ответить

Номер ответа: 7
Автор ответа:
 zerofx



Вопросов: 1
Ответов: 6
 Профиль | | #7 Добавлено: 05.06.08 01:46
Smith - большое СПАСИБО!!! Ето мои первиє шаги в VBA ... Спасибо за помощь ! Но єсли тебе не трудно обьяснить мне одну вещь - а имено формулы... Например в мойом примере суммируются 2-ве ячейки в третью, а имено "SUM" А1:В1 в С1 . Но єсли мне надо поменять ячейки ну например - "SUM" D1:F1 в K1 ... Просто не могу понять вот зтот код
FormulaR1C1 = "=SUM(RC[-2]:RC[-1];)"
- єсли я питаюсь задать в ручную то только ошибки получаются... Помоги єсли несложно..

Ответить

Номер ответа: 8
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #8 Добавлено: 05.06.08 08:17
"SUM" А1:В1

Ты указываешь конкретные ячейки и если добавить строку или столбец то возможно формула будет ссылаться не туда, куда нужно.
"=SUM(RC[-2]:RC[-1])"

RC - это текущая ячейка
FormulaR1C1 = "=SUM(RC[-2]:RC[-1])"

значение ячейки равно сумме предыдущей(т.е. RC[-1]) и пред – предыдущей(т.е. RC[-2]) ячейки

RC[-N]
Смещение в строке "-" это направление смещения, а "N" кол-во ячеек.

Ответить

Номер ответа: 9
Автор ответа:
 zerofx



Вопросов: 1
Ответов: 6
 Профиль | | #9 Добавлено: 06.06.08 15:06
Sub Макрос_1()
'
' Макрос_1 Макрос
' Макрос записан 06.06.2008 (Admin)
'

'
    Selection.AutoFill Destination:=Range("A1:A10";), Type:=xlFillDefault
    Range("A1:A10";).Select
End Sub


Извини пожалоста что надоєдаю - но тут по ходу появилась новая проблема - в етом макросе я с помощю AutoFill - запоняю одновременно 10 ячеєк в низ... Чево здесь не хватаєт что би они автоматом заполняли как и в предвидушем примере все ячейки до строки с текстом... Поможеш? А то я пилаюсь прикрутить єво к тому коду что ти мне дал раньше но ничево не получаєтса...

Ответить

Номер ответа: 10
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #10 Добавлено: 06.06.08 16:03

Sub Macro2()
    Range("A1:A2";).Select
    Selection.AutoFill Destination:=Range("A1:A" & CStr(ActiveSheet.UsedRange.Rows.Count - 1)), Type:=xlFillDefault
    Range("A1:A" & CStr(ActiveSheet.UsedRange.Rows.Count - 1)).Select
End Sub

Ответить

Номер ответа: 11
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #11 Добавлено: 06.06.08 16:05
Кстати третья строчка

Range("A1:A" & CStr(ActiveSheet.UsedRange.Rows.Count - 1)).Select

в приципе не нужна

Ответить

Номер ответа: 12
Автор ответа:
 zerofx



Вопросов: 1
Ответов: 6
 Профиль | | #12 Добавлено: 10.06.08 18:39
Привет! Нужна твоя помощь... Вот скажи на твойо мнениє - как ето лутше сделать?
Єсть таблица, в ней 11 столбцов и примерно 31 запись(31 - как ти понимаєш ето строка с текстом без цифрових
значений), В ней виполняєтса та робота с которой ти мне помог, тоєсть сумированиє конкретних столбцов до строки
с текстом. Но теперь у меня появилась новая проблема - например у меня будет 15000 строк... 8) Может бить и больше,
я в них запутаюсь, как би организовать чтоби разбить ети записи на листе по сиуме строк например - сума записана в
столбце с K1:K, каждая строка отвечет за конретно значениє - понимаєш? Вот єсли б таблица робивалась - когда сума
била ровна 255... После етово как би Создавалась новая таблица на листе - сума которой билаб равна 255, да и кней
хорошоби било добавить 2-ве строки, одну с верху, а другую с низу. В верхнуй Например можно би било задать
порядочний номер новой таблици на листе, например не автоматом считать с 1 до N... а с кокйто нужной цифри
нарпимер с 11 и дальше. А нижнюю для пробела между разбитима таблицами... Вот суть задачи... Поможеш мне пожалоста.
Єсли не трудно....

У меня єсть

               A B C D E F G H I J K
 1| 1023763 | 13592189 |1 |TEST NAME|1 |19.03.2008 |BSV |1 |10 |99 |100|
 2| 1023765 | 13592189 |1 |TEST NAME|1 |19.03.2008 |BSV |1 |1 |99 |100|
 3| 1023766 | 13592189 |1 |TEST NAME|1 |19.03.2008 |BSV |1 |1 |54 |55 |
 4| 1023767 | 13592189 |1 |TEST NAME|1 |20.03.2008 |BSV |149 |1 |1 |150|
 5| 1023768 | 13592189 |1 |TEST NAME|1 |25.03.2008 |BSV |49 |3 |1 |50 |
 6| 1023769 | 13592189 |1 |TEST NAME|1 |25.03.2008 |BSV |54 |3 |1 |55 |
 7| 1023770 | 13592189 |1 |TEST NAME|1 |25.03.2008 |BSV |1 |1 |1 |2 |
 8| 1023771 | 13592189 |1 |TEST NAME|1 |25.03.2008 |BSV |1 |1 |1 |2 |
 9| 1023772 | 03192945 |1 |TEST NAME|1 |25.03.2008 |BSV |1 |1 |1 |2 |
  **************************************************************************************
28| 1023776 | 13592189 |1 |TEST NAME|1 |16.04.2008 |BSV |1 |15 |1 |2 |
29| 1023778 | 13592189 |1 |TEST NAME|1 |08.05.2008 |BSV |1 |12 |1 |2 |
30| 1023779 | 13592189 |1 |TEST NAME|1 |21.05.2008 |BSV |1 |2 |1 |2 |
31| № | Cod |CO |Name |№2 |Data |Namenc |Page|Rec |ja |SuM|


А мне надаби

               A B C D E F G H I J K
 1|№ 11 | | | | | | | | | | |
 2| 1023763 | 13592189 |1 |TEST NAME|1 |19.03.2008 |BSV |1 |10 |99 |100|
 3| 1023765 | 13592189 |1 |TEST NAME|1 |19.03.2008 |BSV |1 |1 |99 |100|
 4| 1023766 | 13592189 |1 |TEST NAME|1 |19.03.2008 |BSV |1 |1 |54 |55 |
 5| | | | | | | | | | |255| - Сума строк
 6| | | | | | | | | | | | - Пробел между таблицами
 7|№ 12 | | | | | | | | | | |
 8| 1023767 | 13592189 |1 |TEST NAME|1 |20.03.2008 |BSV |149 |1 |1 |150|
 9| 1023768 | 13592189 |1 |TEST NAME|1 |25.03.2008 |BSV |49 |3 |1 |50 |
10| 1023769 | 13592189 |1 |TEST NAME|1 |25.03.2008 |BSV |54 |3 |1 |55 |
11| | | | | | | | | | |255|
12| | | | | | | | | | | |
****************************************************************************************
 99|№ 115 | | | | | | | | | | | - Эсть такиэ случаи когда
100| 1023770 | 13592189 |1 |TEST NAME|1 |25.03.2008 |BSV |1 |1 |1 |2 | сумма будет иметь большоэ
101| 1023771 | 13592189 |1 |TEST NAME|1 |25.03.2008 |BSV |1 |1 |1 |2 | значениэ, а и маленькоэ
102| 1023772 | 03192945 |1 |TEST NAME|1 |25.03.2008 |BSV |1 |1 |1 |2 |
103| | | | | | | | | | |n..|
104| | | | | | | | | | | |
105| | Cod |CO |Name |№2 |Data |Namenc |Page|Rec |ja |SuM| - Полденяя строка стекстом...


Помоги пожалоста, эсли не тудно....

Ответить

Номер ответа: 13
Автор ответа:
 zerofx



Вопросов: 1
Ответов: 6
 Профиль | | #13 Добавлено: 10.06.08 18:55
Извини с описанием... Немного не расчитал 8) Но думаю смысл понятен...

Ответить

Номер ответа: 14
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #14 Добавлено: 11.06.08 13:54
скинь документ на maxpotas@mail.ru

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам