посчитать содержимое ячеек

Программирование на Visual Basic for Applications
Acclaim
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 21.01.2005 (Пт) 8:36
Откуда: Красноярск

посчитать содержимое ячеек

Сообщение Acclaim » 14.04.2005 (Чт) 11:47

Необходимо посчитать содержимое ячеек в столбце В строки с 1 по 120 (при условии что у этих строк присутствуют ячейки со значением =1)
Не важно кто прав, главное - кто ЛЕВ!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.04.2005 (Чт) 12:19

Что имеется в виду под "посчитать содержимое ячеек"?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Acclaim
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 21.01.2005 (Пт) 8:36
Откуда: Красноярск

Сообщение Acclaim » 14.04.2005 (Чт) 12:21

имеется в виду суммировать числовые значения
Не важно кто прав, главное - кто ЛЕВ!

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 14.04.2005 (Чт) 12:27

Ну, блин, я тебе уже в прошлом постинге ответил - ПРОЧТИ ХЕЛП ПО ФУНКЦИИ СУММЕСЛИ!!!

Или, если уж так приспичило использовать VBA - напиши один элементарный цикл!

Acclaim
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 21.01.2005 (Пт) 8:36
Откуда: Красноярск

Сообщение Acclaim » 14.04.2005 (Чт) 12:31

так вот насчет цикла то и проблемы не знаю как
Не важно кто прав, главное - кто ЛЕВ!

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 14.04.2005 (Чт) 12:55

Full_Sum=0
For i=1 to 120
if Cells(i,1).Value=1 Then Full_Sum=Full_Sum+Cells(i,2).Value
Next i

Acclaim
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 21.01.2005 (Пт) 8:36
Откуда: Красноярск

Сообщение Acclaim » 14.04.2005 (Чт) 13:12

мне надо не строки считать а данные в ячейках по столбцу В принадлежащих этим строкам
Не важно кто прав, главное - кто ЛЕВ!

Acclaim
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 21.01.2005 (Пт) 8:36
Откуда: Красноярск

Сообщение Acclaim » 15.04.2005 (Пт) 4:43

У меня есть код следующего содержания:

Option Explicit
Public main_file As String

Public Sub Auto_Open()
main
a
rezult
End Sub

Sub main()
ChDir "C:\xml"
Workbooks.OpenXML Filename:="C:\xml\records.xml", LoadOption:= _
xlXmlLoadImportToList
Rows("2:60").Select
Selection.Delete Shift:=xlUp
Windows("Запуск.xls").Activate
End Sub



Sub rezult()
DialogSheets("1").Show
End Sub

Sub a()
Dim i As Integer
Dim s, r, n, x, z As Integer
Dim iRow, iFormulaOne, iFormulaTwo, iRowLast As Integer
Dim currentAgr As String: currentAgr = ""
Dim counter As Long: counter = 3

Windows("Книга1").Activate
s = 0 ' s - суммирование всех ячеек в столбце E
x = 0 ' количество строк со значением = 1
z = 0 ' количество строк со значением = 0
r = 0 ' r- это суммирование ячеек в столбце E при условии что ячейки принадлежат строкам с
условием =1
n = 0 ' n- это суммирование ячеек в столбце E при условии что ячейки принадлежат строкам с условием
=1

Full_Sum = 0
For i = 1 To 10000
If Cells(i, 36).Value = 1 Then Full_Sum = Full_Sum + Cells(i, 2).Value
s = Full_Sum
Next i


For i = 2 To 10000
If Cells(i, 36) = "1" Then
r = r + 1
End If
Next

For i = 2 To 10000
If Cells(i, 36) = "0" Then
n = n + 1
End If
Next

For i = 2 To 10000
If Cells(i, 36) >= "0" Then
s = s + 1
End If
Next


Windows("запуск").Activate
Range("C3") = s
Range("C4") = r
Range("C5") = n
Range("C6") = x
Range("C7") = z


не могу добиться чтобы считались переменные s, n, r
Не важно кто прав, главное - кто ЛЕВ!

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 15.04.2005 (Пт) 10:15

А точно в Cells(i, 36) находяться "1" или "0"??? если нет то на нет и суда нет :D

For i = 2 To 10000
If Cells(i, 36) = "0" Then
n = n + 1
End If
Next

For i = 2 To 10000
If Cells(i, 36) >= "0" Then
s = s + 1
End If
Next
Можно переделать так:
For i = 2 To 10000
If Cells(i, 36) = "0" Then
n = n + 1
s = s + 1
End If
Next
а вот это:
For i = 2 To 10000
If Cells(i, 36) = "1" Then
r = r + 1
End If
Next

For i = 2 To 10000
If Cells(i, 36) = "0" Then
n = n + 1
End If
Next

For i = 2 To 10000
If Cells(i, 36) >= "0" Then
s = s + 1
End If
Next

я бы, сделал так:
For i = 2 To 10000
select case trim(Cells(i, 36).value)
case "1"
r = r + 1
case "0"
s = s + 1
n = n + 1
end select
End If


Удачи


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 69

    TopList