Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
ВПР макросом возвращает неправильный результат
 
Чего не знал того не знал.

Спасибо за консультацию тему можно закрыть.
ВПР макросом возвращает неправильный результат
 
Цитата
RAN написал:
F1Use the IFERROR function to trap and handle errors in a formula И где у вас формула?

Cells(7, Cnt) = WorksheetFunction.IfError(WorksheetFunction.VLookup(WorksheetFunction.Substitute(Range("A7") & Range("B7") & Range("C7"), " ", ""), Sheets("Pivot").Range("A:B"), 2, 0), 0)

Выделил жирным)
Изменено: xlankasterx - 20.11.2019 10:52:11
ВПР макросом возвращает неправильный результат
 
Уже пробовал:

Код
Cells(7, Cnt) = WorksheetFunction.IfError(WorksheetFunction.VLookup(WorksheetFunction.Substitute(Range("A7") & Range("B7") & Range("C7"), " ", ""), Sheets("Pivot").Range("A:B"), 2, 0), 0)

Но выдает ошибку 1004(скрин во вложении)

Спасибо за помощь!
ВПР макросом возвращает неправильный результат
 
Все-таки для понимания, почему если я добавляю последний аргумент ВПР этот код выдает ошибку 1004?

Код
Cells(7, Cnt) = WorksheetFunction.VLookup(WorksheetFunction.Substitute(Range("A7") & Range("B7") & Range("C7"), " ", ""), Sheets("Pivot").Range("A:B"), 2,0)
ВПР макросом возвращает неправильный результат
 
RAN, спасибо ЗА ОТВЕТ!
ВПР макросом возвращает неправильный результат
 
Предположу что речь идет об опущенном последнем аргументе, если да то его добавление вызывает runTimeError 1004.
И насколько я знаю этот аргумент можно опустить ибо он по умолчанию 0.
Изменено: xlankasterx - 20.11.2019 10:39:50
ВПР макросом возвращает неправильный результат
 
Да тянуться данные из Final3 в Data_rub.

Данные за 2019-11-30 должны добавляться макросом, для этого в ячейки будет циклом вставляться формула(она руками сейчас добавлена для проверки работы макроса).
Так вот первой значение он считает некорректно а второе корректно.
Изменено: xlankasterx - 19.11.2019 19:18:28
ВПР макросом возвращает неправильный результат
 
Всем привет!

Мне нужно подвприть макросом значения к столбцу, делаю я это следующим методом:
Код
Cells(7, Cnt) = WorksheetFunction.VLookup(WorksheetFunction.Substitute(Range("A7") & Range("B7") & Range("C7"), " ", ""), Sheets("Pivot").Range("A:B"), 2)


По непонятной причине вместо ошибки #Н/Д он возвращает неправильно число,по отсутствующим значениям, я не могу понять почему?

Спасибо!
Аналог Excel функции ДАТА() в VBA
 
Спасибо большое! Тему можно закрыть.
Аналог Excel функции ДАТА() в VBA
 
Всем привет!

Подскажите пожалуйста есть ли аналог екселеской функции ДАТА() в VBA, аналог нужен чтобы в макросе собрать дату из значений переменных года,месяца,дня.

Спасибо за помощь!
Макрос по суммированию ячеек (входящих в объектную переменную Rang)
 
Цитата
vikttur написал:
Ошибка в первом варианте. Сначала
Код ? 1Rang(i, 9) = Rang(i, 8 )
Потом выходим из Select и добавляем
Код ? 1VAR = VAR + (Rang(i, 9) + Rang(i, 14))

Чего-то я недопонимаю. Первый вариант считает правильно, это точно. в нем ошибки нет.
Но он вносит изменения в ячейки, этой строкой кода:
Код
  Rang(i, 9) = Rang(i, 8 )   


Когда я пытаюсь заменить эту строку, например этой формулой:

Код
VAR=VAR+ iif(Rang(i,9)=0,Rang(i,8 ),Rang(i,9))+Rang(i,14)

То получаю погрешность в расчете.

А мне нужно получить такой же результат расчета, без внесения изменений в ячейку Rang(i,9).
Для этого надо заменить строку кода:
Код
 Rang(i, 9) = Rang(i, 8 ) 

Но вот на что её заменить мне не ясно.
Изменено: xlankasterx - 01.03.2017 10:04:22
Макрос по суммированию ячеек (входящих в объектную переменную Rang)
 
Кнопка цитирования не для ответа.
Вам за каждым пунктом правил делать замечание или все-таки ознакомитесь с правилами полностью?
[МОДЕРАТОР]

Если Rang(i,9)=0 то суммировать надо без Rang(i,14).
Насколько я понял из вашего ответа проблема во втором варианте в этом участке кода:
Код
Select Case Rang(i, 9) 
 Case 0 
 VAR = VAR + Rang(i, 8 ) 
 Case Else
 VAR = VAR + (Rang(i, 9) + Rang(i, 14)) 
End Select

Но разве условие Case Else не означает, что если Rang(i,9)<>0 то считаем по формуле:  VAR = VAR + (Rang(i, 9) + Rang(i, 14)) ?

Спасибо за помощь!
Изменено: xlankasterx - 28.02.2017 16:32:36
Макрос по суммированию ячеек (входящих в объектную переменную Rang)
 
Код
For t = 1 To 4 
 For i = 1 To 103 
 If Rang(i, 1) = agency(t, 1) Then 

 Paym = Paym + (Rang(i, 14) + Rang(i, 15)) 
 'VAR = VAR + (Rang(i, 9) + Rang(i, 14)) 

 Select Case Rang(i, 9) 
 Case 0 
 Rang(i, 9) = Rang(i, 8 ) '------------------------> на эту строчку просьба обратить внимание 
End Select 
 VAR = VAR + (Rang(i, 9) + Rang(i, 14)) 

End If 
Next i 

Меняю условия и расчет не верный :
Код
2)For t = 1 To 4 
 For i = 1 To 103 
 If Rang(i, 1) = agency(t, 1) Then 

 Paym = Paym + (Rang(i, 14) + Rang(i, 15)) 
 'VAR = VAR + (Rang(i, 9) + Rang(i, 14)) 

 Select Case Rang(i, 9) 
 Case 0 
 VAR = VAR + Rang(i, 8 ) 
 Case Else 
 VAR = VAR + (Rang(i, 9) + Rang(i, 14)) 
End Select 
End If 
Next i 

Делаю макрос который по строкам считает сумму двух показателей VAR и Paym. Проблемы возникают только с VAR. Первый вариант макроса плох тем что вносит изменения в таблицу, из-за того что переменная Rang - это диапазон ячеек. Второй не вносит изменений но считает не правильно вопрос почему так?
Должно быть так: Если Rang(i,9)=0 то VAR=VAR+ Rang(i,8 ) Если Rang(i,9)<>0 то VAR = VAR + (Rang(i, 9) + Rang(i, 14)).
Спасибо всем!
Изменено: xlankasterx - 28.02.2017 16:03:56
Создание гипперссылки в макросе отправляющем письмо через оутлук из ексель
 
Попробую спасибо)
Создание гипперссылки в макросе отправляющем письмо через оутлук из ексель
 
Цитата
Юрий М написал: Там очень много "полезняшек" ))
Гляну обязательно)
Создание гипперссылки в макросе отправляющем письмо через оутлук из ексель
 
Остался один вопрос и тему можно закрыть. Гипперссылку в письме отправил, но чтобы перейти по ней, получатель должен зажать ctrl и щелкнуть мышью, можно как-нибудь сделать так, чтобы ctrl зажимать было не нужно для перехода по гипперссылке?

Гипперсылка в макросе выглядит так:
Код
<a HREF=""адрес файла"">Открыть файл</a>
Изменено: xlankasterx - 22.11.2016 20:35:08
Создание гипперссылки в макросе отправляющем письмо через оутлук из ексель
 
Цитата
Юрий М написал:
а в КАКОМ разделе Вы искали, если у Вас вопрос про отправку почты?
Спасибо за помощь) там же и искал но в такие дебрири лезть не додумался да я и недавно на формуе на приемы пока особого внимание не обращал.
Создание гипперссылки в макросе отправляющем письмо через оутлук из ексель
 
В приемах много чего, но то что нужно я не нашел, как конкретно тема называется, которую мне в приемах надо глянуть?
Создание гипперссылки в макросе отправляющем письмо через оутлук из ексель
 
К сожалению ничего толкового не нашел, может в графу поиск вбиваю не то что надо. Если перефразировать мой вопрос то:
Как передать оутлуком письмо с гипперссылкой. Письмо отправляется легко а вот как в теле письма указать работающую гипперссылку на файл не понятно.
Изменено: xlankasterx - 21.11.2016 14:59:12
Создание гипперссылки в макросе отправляющем письмо через оутлук из ексель
 
Всем привет!
Есть макрос в ексель 2010. Его задача отправить письмо через оутлук с гипперссылкой на файл отчета. Но при отправке письма, гипперссылка не создается а вставляется в тело пиьсма как текст. Впорос как сделать текстовую строку гипперссылкой на файл в теле письма? Чтобы получатель мог щелкнуть на ссылку и перейти к файлу отчета. Сам текст макроса на отправку не привожу, он элементарен. Мне не понятно только как задать гипперрссылку на файл.
Изменено: xlankasterx - 21.11.2016 13:21:34
Ошибка 1004 при использовании функций рабочего листа в макросе, VBA ошибка 1004 при использовании функции рабочего листа.
 
Спасибо всем большое! Вопросов больше нет.
Ошибка 1004 при использовании функций рабочего листа в макросе, VBA ошибка 1004 при использовании функции рабочего листа.
 
Последний вопрос и тема закрыта):

On Error Resume Next
      var = Application.WorksheetFunction.Search("free", Cells(2, 1), 1)
   On Error GoTo 0

в чем разница между первой и третьей строчкой?
Ошибка 1004 при использовании функций рабочего листа в макросе, VBA ошибка 1004 при использовании функции рабочего листа.
 
Цитата
Karataev написал:
PS. Может быть можно не дожидаться ошибки, а сначала проверить наличие данных другой функцией Excel'я, а только потом использовать "WorksheetFunction.Search".
Полчучается, что при использовании функций рабочего листа в макросах обязательно надо заморачиваться с перехватом ошибок?
Изменено: xlankasterx - 17.11.2016 11:41:21
Ошибка 1004 при использовании функций рабочего листа в макросе, VBA ошибка 1004 при использовании функции рабочего листа.
 
Цитата
SuperCat написал:
А причём тут IsErr и проверка ячейки на значение? В ячейке может быть ошибка?


There is no knowledge that is not power
функция search ищет текст "free" если текста в ячейке нет то iserr (как я думаю) вернет значение true то есть ошибка. На раб листеформула такая: еош(ПОИСК("FREE";A1;1)), вот эту формулу я и пытаюсь задействовать в VBA. Причем в ячейке cells(1,2) текст "fort". И еошибка возвращает true. А в vba аналогичная формула вызывает ошибку 1004.
Ошибка 1004 при использовании функций рабочего листа в макросе, VBA ошибка 1004 при использовании функции рабочего листа.
 
Привет всем!
Просьба помочь выяснить что не так в следующем коде макроса:

MsgBox worksheetfunction.iserr(Application.WorksheetFunction.Search("free",Cells(2, 1), 1) )= 0

с cells(1,1) - стоит значение adadfree - тут ошибки не происходит
при переходе к cells(1,2) - с содержание fort
вылетает ошибка 1004.
Поэтому разъясните пожалуйста, что я не так делаю?

По смыслу макрос должен проверить есть ли в ячейке значение "free" если нету то iserr - вернет true.
PS знаю что есть куча способов это сделать, но хочу понять что не так именно с данным вариантом.
Большое спасибо!
Страницы: 1
Наверх