Vba excel trim не работает
I am preparing to make a few alterations to a spreadsheet that another person built. I have NOT made any changes to it yet.
They put in a button that allows portions of the worksheet to print. I am now using Excel 2007. Their code ran fine in 2003.
The button had worked in Excel 2003- but now (without any changes) throws an error "Compile Error: Cant find project or library."
TRIM is highlighted in the following code: (See below for the whole sub)
If Trim(Worksheets("Measurements").Cells(RowCounter, ColumnCounter).Value) <> "" Then
If RowCounter > PrintRowMarker Then
PrintRowMarker = RowCounter
End If
I have added in the following references into Excel via the big button in the upper left and the "Excel Options" screens:
Analysis Toolpak and Analysis Toolpak-VBA. The sheet "Measurements" is present.
1) Are these the right packages for the TRIM function?
2) Is there a different Add-in that is needed?
3) Is there an additional step I must use to actually add in these packages?
4) Is there something else I should do?
P.S. Access 2003 finds (it's version of) TRIM fine- so a version is on the machine. This spreadsheet if failing in the same way on 2 machines- both with Office 2007 installed.
Private Sub BtnPrint_Click()
Dim RowStarter As Integer 'Where to start checking rows for content
Dim RowCounter As Integer 'The current row being checked
Dim ColumnCounter As Integer 'The current column being checked
Dim PrintRowMarker As Long 'The last row with data
Dim PrintColumnMarker As Long 'The last column with data
Dim NoMoreData As Boolean 'Look for a blank record
Dim RangeValue As String 'Define the range string value
Dim EndRangeValue As String
PrintColumnMarker = 0
PrintRowMarker = 0 'Initialize the row printing marker
RowStarter = 5 'Print Starting Point
For RowCounter = 2005 To RowStarter Step -1
For ColumnCounter = 50 To 2 Step -1
If Trim(Worksheets("Measurements").Cells(RowCounter, ColumnCounter).Value) <> "" Then
If RowCounter > PrintRowMarker Then
PrintRowMarker = RowCounter
End If
If PrintRowMarker > 0 Then
End If
Next RowCounter
EndRangeValue = IndexToString(PrintRowMarker, PrintColumnMarker)
RangeValue = "$A$1:" & EndRangeValue
Информация о сайте
Инструменты и настройки
Excel Windows
и
Excel Macintosh
Вопросы и решения
Работа и общение
Работа форума и сайта
Функции листа Excel
= Мир MS Excel/Справочники
Все функции VBA [3] |
Математические функции [14] |
Функции обработки массивов [4] |
Функции обработки строк [27] |
Функции преобразования типа данных [11] |
Функции загрузки данных [8] |
Функции работы с файлами [12] |
Функции обработки системных параметров [16] |
Функции обработки цвета [2] |
Функции работы с датами и временем [21] |
Функции преобразования чисел в разные системы счисления [3] |
Функции работы с объектами [4] |
Финансовые функции [13] |
Функции форматирования [5] |
Функции работы с указателями [3] |
Функция Trim
Функция Trim объединяет действия двух функций LTrim и RTrim, удаляя пробелы как справа, так и слева
Возвращаемое значение
Возвращает исходную строку типа Variant(String) без начальных и завершающих пробелов. Если аргумент имеет значение Null , то возвращается Null
Параметры String Обязательный аргумент может представлять любое строковое выражение
Репутация: нет
Всего: нет
На домашнем компьютере не работает программа написанная с помощью Access 2003 и VBA.
Спотыкается на таких СТАНДАРТНЫХ функциях, как Trim, LCase, UCase.
Проверила, по указанному пути данный файл есть.
При этом, на работе данная программа работает без проблем.
Разница только в том, что на домашнем стоит только офис (2003), а на работе установлен еще и VB6.
Подскажите, какие библиотеки скопировать (и куда), чтобы Access начал понимать стандартные функции.
Репутация: 25
Всего: 453
Теперь проверь, что она числится в списке подключенных (References. ) - галочка должна стоять.
О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.
Репутация: нет
Всего: нет
Akina, проверила.
стоят галочки около первых 5-ти элементов:
Visual Basic for Application
Microsoft Access 11.0 Object Library
OLE Automation
Microsoft DAO 3.6 Object Library
Microsoft ActiveX Data Objects 2.1 Library
в чем ещё может быть загвоздка?
Репутация: 25
Всего: 453
О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.
Репутация: нет
Всего: нет
Akina, я правильно Вас понимаю?
"перерегистрировать эту библиотеку" это следующие действия:
Понимаю, что для знающего человека этот вопрос более, чем дурацкий, но мне ни разу ещё не приходилось совершать сей обряд "перерегистрации библиотеки"
Репутация: 25
Всего: 453
То что описАли Вы - это перепривязка.
PS. А еще бы проверить валидность либы (т.е. просто сравнить ее с той что в дистрибутиве, если ее не обновлял какой-нить постфикс илисервис-пак - не попорчена ли).
О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.
Репутация: нет
Всего: нет
сделано, не помогло :(
Цитата |
А еще бы проверить валидность либы (т.е. просто сравнить ее с той что в дистрибутиве, если ее не обновлял какой-нить постфикс илисервис-пак - не попорчена ли). |
офис свеже переустановлен - вроде бы библиотеки не должны успеть попортиться (за 5 минут разделяющие установку офиса и запуск программы)
Прога уже проверена на 3-х компах (кроме рабочего). НА всех трех - не видит функции LCase, Trim
какая-то нездоровая фигня :(
Репутация: 25
Всего: 453
Более чем странно - если Object Browser видит и показывает функцию, то библиотека подключена и функция доступна.
Нет ли каких проблем с безопасностью? антивирусом? сертификатами?
Дополнительно - функции не отрабатывают в коде модуля? в запросе? а через построитель запросов видны-доступны?
О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.
Репутация: нет
Всего: нет
Цитата(Akina) |
Нет ли каких проблем с безопасностью? антивирусом? сертификатами? |
Уровень безопастности стоит низкий. Антивирус отключен. Сертификатами не пользуюсь. И Акцесс про них не спрашивает.
Цитата(Akina) |
Дополнительно - функции не отрабатывают в коде модуля? в запросе? а через построитель запросов видны-доступны? |
Функция не отрабатывает в коде модуля. В запросе не пробовала - на одной машине снова снесу vb6 - поэкспериментирую в построителе запросов.
ПРоблему решили установкой на машину VB6.
Можно ли как-нибудь сделать что-то наподобие дистрибутивного пакета. Чтобы на все машины, где должна работать программка не устанавливать vb6.
Просто на мой взгляд слегка дико, что для работы Акцесса с весьма простыми функциями - требуется дополнительная установка vb6.
Репутация: 25
Всего: 453
Боюсь, что все-таки косяк где-то или в инсталляторе, или в процессе инсталляции Офиса. попробуй (ну так, для куража) переставить (изменение состава компонентов) Офис, указав ставить ВСЕ компоненты Аксесса и ВСЕ Средства/ОбщиеСредства.
О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.
Репутация: 9
Всего: 109
Пока помечу как решённый.
1. Публиковать ссылки на вскрытые компоненты
2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
- Несанкционированная реклама на форуме запрещена
- Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
- Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
- Оставляйте свои записи в "Книге отзывов о работе администрации"
- А вот тут лежит FAQ нашего подраздела
Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.
[ Время генерации скрипта: 0.1303 ] [ Использовано запросов: 21 ] [ GZIP включён ]
32 комментария для “VBA Excel. Содержание рубрики”
Здравствуйте! У Вас нет темы по работе с фильтром. Можно проконсультироваться на этот счёт?
Здравствуйте, Сергей!
Задавайте вопрос, постараюсь ответить.
Спасибо, Евгений! Имеется в Excel столбец с включённым автофильтром. Можно ли программно запустить окно фильтра для выбора значений? Т.е. не руками нажимать на иконку фильтра, а заставить окно открываться с помощью макроса. Спасибо за ответ.
Да, это возможно:
Сергей, уточните вопрос: нужно программно нажать кнопки Ok и Отмена или отследить, какая из них была нажата?
Евгений, я разобрался, почему не выводилось окно с фильтром.
Пример отслеживания нажатий кнопки «OK» автофильтра. На нажатие кнопки «Отмена» код не реагирует.
myString = Range ( "A1" ) . CurrentRegion . SpecialCells ( xlCellTypeVisible ) . Address myString1 = Range ( "A1" ) . CurrentRegion . SpecialCells ( xlCellTypeVisible ) . Address If Not Intersect ( ActiveCell , Range ( "A1" ) ) Is Nothing ThenRange("A1").CurrentRegion можно заменить на имя таблицы.
Евгений, а формулу в поле B2 оставлять или её можно удалить?
Сергей, событие Worksheet_Calculate() не зависит от команды SendKeys "%" . Ограничение стоит здесь:
If Not Intersect ( ActiveCell , Range ( "A1" ) ) Is Nothing ThenКод в процедуре Worksheet_Calculate() срабатывает только когда активна ячейка Range("A1") . Если заменить в этой строке Range("A1") на диапазон строки заголовков таблицы, тогда код будет срабатывать при любой активной ячейке в заголовке.
В столбце «B» не должно быть пустых ячеек до последней строки таблицы.
Как определить в VBA есть узор в ячейке?
If ActiveCell . Interior . Pattern = xlPatternNone ThenДобрый день! Никак не могу решить проблему с заблокированным автофильтром на защищенном макросом (нашел на форумах) листе. Подскажите пожалуйста, куда и какую строчку нужно добавить в макрос, чтобы при открытии файла был активен автофильтр:
Set ws = ThisWorkbook . Sheets ( 1 ) 'можно указать любой лист книги 'устанавливаем защиту на все ячейки рабочего диапазона листа 'снимаем защиту только с пустых ячеек рабочего диапазона листа Set rr = ws . UsedRange . SpecialCells ( xlCellTypeBlanks ) Private Sub Workbook_BeforeClose ( Cancel As Boolean )Добрый день, Владислав!
Замените строку
Добрый день, Евгений!
ОГРОМНОЕ СПАСИБО. :))
Здравствуйте, помогите, пожалуйста, решить задачу((
Здравствуйте, Рафия!
С разработкой кредитного калькулятора вам помогут только за плату на бирже фриланса.
Добрый день, Евгений! Я только начинаю работать с VBA. Помогите, пожалуйста, прописать код для автоматического перемещения курсора на ячейку вправо после заполнения предыдущей.
Здравствуйте, Ева! Для перемещения фокуса в ячейку справа код VBA не нужен: используйте для этого клавишу «Tab» или настройте клавишу «Enter» для перехода вправо (Файл >> Параметры >> Дополнительно).
Спасибо за ответ! Да, но это надо делать вручную; речь идёт об автоматическом перемещении курсора.
Читайте также: