Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос выдает ошибку #VALUE! - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос выдает ошибку #VALUE! (Макросы/Sub)
Макрос выдает ошибку #VALUE!
krosav4ig Дата: Суббота, 31.05.2014, 04:32 | Сообщение № 21
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Function NewOrProlonged(ContragentColNum As Integer, SquareColNum As Integer)
'NewOrProlonged = Application.WorksheetFunction.SumProduct((Range(Cells(7, ContragentColNum), Cells(EntireRow.Row, ContragentColNum)) = Cells(EntireRow.Row, ContragentColNum)) * (Range(Cells(7, SquareColNum), Cells(EntireRow.Row, SquareColNum)) = Cells(EntireRow.Row, SquareColNum)))
Dim rngContragent$, rngSquare$, crtContragent$, crtSquare$
       With Application.Caller
           crtContragent = Cells(.Row, ContragentColNum).Address
           crtSquare = Cells(.Row, SquareColNum).Address
           rngContragent = Range(Cells(8, ContragentColNum), Cells(.Row - 1, _
               ContragentColNum)).Address
           rngSquare = Range(Cells(8, SquareColNum), Cells(.Row - 1, _
               SquareColNum)).Address
       End With
       NewOrProlonged = Evaluate("SumProduct((" & rngContragent & " = " & _
           crtContragent & ")*(" & rngSquare & "=" & crtSquare & "))")
       'NewOrProlonged = Evaluate("SumProduct((" & rngContragent & "=" & crtContragent _
           & ")*(" & rngContragent & "<>"""")*(" & rngContragent & ">0)*(" & rngSquare & _
           "=" & crtSquare & ")*(" & rngSquare & "<>"""")*(" & rngSquare & ">0))")
End Function
[/vba]
К сообщению приложен файл: 8578075.xls (39.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 31.05.2014, 04:33
 
Ответить
Сообщение[vba]
Код
Function NewOrProlonged(ContragentColNum As Integer, SquareColNum As Integer)
'NewOrProlonged = Application.WorksheetFunction.SumProduct((Range(Cells(7, ContragentColNum), Cells(EntireRow.Row, ContragentColNum)) = Cells(EntireRow.Row, ContragentColNum)) * (Range(Cells(7, SquareColNum), Cells(EntireRow.Row, SquareColNum)) = Cells(EntireRow.Row, SquareColNum)))
Dim rngContragent$, rngSquare$, crtContragent$, crtSquare$
       With Application.Caller
           crtContragent = Cells(.Row, ContragentColNum).Address
           crtSquare = Cells(.Row, SquareColNum).Address
           rngContragent = Range(Cells(8, ContragentColNum), Cells(.Row - 1, _
               ContragentColNum)).Address
           rngSquare = Range(Cells(8, SquareColNum), Cells(.Row - 1, _
               SquareColNum)).Address
       End With
       NewOrProlonged = Evaluate("SumProduct((" & rngContragent & " = " & _
           crtContragent & ")*(" & rngSquare & "=" & crtSquare & "))")
       'NewOrProlonged = Evaluate("SumProduct((" & rngContragent & "=" & crtContragent _
           & ")*(" & rngContragent & "<>"""")*(" & rngContragent & ">0)*(" & rngSquare & _
           "=" & crtSquare & ")*(" & rngSquare & "<>"""")*(" & rngSquare & ">0))")
End Function
[/vba]

Автор - krosav4ig
Дата добавления - 31.05.2014 в 04:32
bygaga Дата: Вторник, 03.06.2014, 10:20 | Сообщение № 22
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
krosav4ig, Спасибо! Идеальный вариант!


Сообщение отредактировал bygaga - Вторник, 03.06.2014, 10:21
 
Ответить
Сообщениеkrosav4ig, Спасибо! Идеальный вариант!

Автор - bygaga
Дата добавления - 03.06.2014 в 10:20
bygaga Дата: Вторник, 03.06.2014, 11:06 | Сообщение № 23
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
Вопрос на засыпку - почему в коде
[vba]
Код
Function NewOrProlonged(ContragentColNum As Integer, SquareColNum As Integer)
Dim rngContragent$, rngSquare$, crtContragent$, crtSquare$
     With Application.Caller
         crtContragent = Cells(.Row, ContragentColNum).Address
         crtSquare = Cells(.Row, SquareColNum).Address
         rngContragent = Range(Cells(7, ContragentColNum), Cells(.Row - 1, _
             ContragentColNum)).Address
         rngSquare = Range(Cells(7, SquareColNum), Cells(.Row - 1, _
             SquareColNum)).Address
     End With
      
     NewOrProlonged = Evaluate("SumProduct((" & rngContragent & " = " & _
         crtContragent & ")*(" & rngSquare & "=" & crtSquare & "))")
End Function

[/vba]
crtContragent и crtSquare - понятно, это номер столбца, потому и тип переменной String ($)
А вот переменные
rngContragent
rngSquare
по сути Range? Почему в макросе они как String?

Спасибо
С уважением, Дима
 
Ответить
СообщениеВопрос на засыпку - почему в коде
[vba]
Код
Function NewOrProlonged(ContragentColNum As Integer, SquareColNum As Integer)
Dim rngContragent$, rngSquare$, crtContragent$, crtSquare$
     With Application.Caller
         crtContragent = Cells(.Row, ContragentColNum).Address
         crtSquare = Cells(.Row, SquareColNum).Address
         rngContragent = Range(Cells(7, ContragentColNum), Cells(.Row - 1, _
             ContragentColNum)).Address
         rngSquare = Range(Cells(7, SquareColNum), Cells(.Row - 1, _
             SquareColNum)).Address
     End With
      
     NewOrProlonged = Evaluate("SumProduct((" & rngContragent & " = " & _
         crtContragent & ")*(" & rngSquare & "=" & crtSquare & "))")
End Function

[/vba]
crtContragent и crtSquare - понятно, это номер столбца, потому и тип переменной String ($)
А вот переменные
rngContragent
rngSquare
по сути Range? Почему в макросе они как String?

Спасибо
С уважением, Дима

Автор - bygaga
Дата добавления - 03.06.2014 в 11:06
Hugo Дата: Вторник, 03.06.2014, 11:14 | Сообщение № 24
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Потому что .Address!


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеПотому что .Address!

Автор - Hugo
Дата добавления - 03.06.2014 в 11:14
bygaga Дата: Вторник, 03.06.2014, 12:39 | Сообщение № 25
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
Hugo, Спасибо, буду учиться :)
 
Ответить
СообщениеHugo, Спасибо, буду учиться :)

Автор - bygaga
Дата добавления - 03.06.2014 в 12:39
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос выдает ошибку #VALUE! (Макросы/Sub)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!