Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2011, 19:43   #1
СтаниславАВ
Форумчанин
 
Регистрация: 10.10.2010
Сообщений: 107
По умолчанию Проблемы с базой данных

Добрый день. Новичок в изучении макросов. Может кто подскажет.
Код:
Option Explicit
Public shHome As Integer
Public rowH As Integer 

Public Sub InitPublicVars()
   Set shHome = Workbooks("Репо (облигации).xls").Worksheets("Банки").Range("A2:C200").Value
   With shHome.UsedRange
      rowH = .Rows.Count
   End With
End Sub

Public Sub DeletePublicVars()
   Set shHome = Nothing
End Sub
Проблемы возникли ссылкой на базу данных Set shHome = Workbooks("Репо (облигации).xls").Worksheets("Банки ").Range("A2:C200").Value. Выдает 91 ошибку.
Спасибо, если поможете.
Вложения
Тип файла: rar excel.rar (297.0 Кб, 8 просмотров)

Последний раз редактировалось Stilet; 10.04.2011 в 19:11.
СтаниславАВ вне форума Ответить с цитированием
Старый 09.04.2011, 20:11   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
пробуйте так:
Public Sub InitPublicVars()
Set shHome = Workbooks("Репо (облигации).xls").Worksheets("Банки")
With shHome.UsedRange
rowH = .Rows.Count
End With
End Sub

или так:
Public Sub InitPublicVars()
With Workbooks("Репо (облигации).xls").Worksheets("Банки").UsedRange
rowH = .Rows.Count
End With
End Sub
ладно, Вы в синтаксисе путаетесь... но зачем писать
"Банки ". Вы думаете это одно и то же что
"Банки"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.04.2011, 20:22   #3
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Новичок в изучении макросов
В таком случае, на будущее, прислушайтесь к IgorGO
Цитата:
но зачем писать "Банки ". Вы думаете это одно и то же что Банки"
И настоятельный совет, опять же, на будущее, старайтесь избегать всевозможных символов и пробелов в именах книги и рабочих листов, были замечены проблемы.
Репо (облигации) например, правильнее было бы написать Репо_облигации или РепоОблигации
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 09.04.2011, 20:47   #4
СтаниславАВ
Форумчанин
 
Регистрация: 10.10.2010
Сообщений: 107
Печаль

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Код:
пробуйте так:
Public Sub InitPublicVars()
Set shHome = Workbooks("Репо (облигации).xls").Worksheets("Банки")
With shHome.UsedRange
rowH = .Rows.Count
End With
End Sub

или так:
Public Sub InitPublicVars()
With Workbooks("Репо (облигации).xls").Worksheets("Банки").UsedRange
rowH = .Rows.Count
End With
End Sub
ладно, Вы в синтаксисе путаетесь... но зачем писать
"Банки ". Вы думаете это одно и то же что
"Банки"
Спасибо. Но все равно сообщает об ошибке.

Цитата:
Сообщение от VictorM Посмотреть сообщение
В таком случае, на будущее, прислушайтесь к IgorGO

И настоятельный совет, опять же, на будущее, старайтесь избегать всевозможных символов и пробелов в именах книги и рабочих листов, были замечены проблемы.
Репо (облигации) например, правильнее было бы написать Репо_облигации или РепоОблигации
Спасибо. Не помогло к сожалению. В оригинале макрос начинался с Public shHome As Worksheet, а я исправил на Public shHome As Integer. Но в оригинале тоже ошибку выдаёт.

Последний раз редактировалось Stilet; 10.04.2011 в 19:12.
СтаниславАВ вне форума Ответить с цитированием
Старый 09.04.2011, 21:09   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

и этот?
Код:
Public Sub InitPublicVars()
With Workbooks("Репо (облигации).xls").Worksheets("Банки").UsedRange
rowH = .Rows.Count
End With
End Sub
(второй из предложенных)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.04.2011, 21:17   #6
СтаниславАВ
Форумчанин
 
Регистрация: 10.10.2010
Сообщений: 107
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
и этот?
Код:
Public Sub InitPublicVars()
With Workbooks("Репо (облигации).xls").Worksheets("Банки").UsedRange
rowH = .Rows.Count
End With
End Sub
(второй из предложенных)
Ага. Оба перепробывал. Еще пробывал:
Код:
Public Sub InitPublicVars()
Set shHome = Workbooks("Репо (облигации).xls").Worksheets("Банки").Range("A2:C200").Value
With shHome.UsedRange
rowH = .Rows.Count
End With
End Sub

Public Sub InitPublicVars()
Set shHome = Workbooks("Репо (облигации).xls").Worksheets("Банки").Range("A2:C200")
With shHome.UsedRange
rowH = .Rows.Count
End With
End Sub
Ничего не получается. Не знаю что придумать. Макрос носит название База_Банков. При том этот макрос срабатывает правильно в приложенном файле. Правда ссылка в рабочем файле на ячейку в той же книге, а в нерабочем макросе на другой файл.
Вложения
Тип файла: rar рол.rar (40.6 Кб, 6 просмотров)

Последний раз редактировалось Stilet; 10.04.2011 в 19:15.
СтаниславАВ вне форума Ответить с цитированием
Старый 09.04.2011, 21:26   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

это
"Репо (облигации).xls"
открыто, когда работает макрос?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.04.2011, 21:28   #8
СтаниславАВ
Форумчанин
 
Регистрация: 10.10.2010
Сообщений: 107
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
это
"Репо (облигации).xls"
открыто, когда работает макрос?
Да открыто.
СтаниславАВ вне форума Ответить с цитированием
Старый 09.04.2011, 21:30   #9
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

У меня второй макрос IgorGO работает!
вот этот
Код:
Public Sub InitPublicVars()
With Workbooks("Репо (облигации).xls").Worksheets("Банки").UsedRange
rowH = .Rows.Count
End With
End Sub
rowH = 1786.
так?
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 09.04.2011 в 21:32.
VictorM вне форума Ответить с цитированием
Старый 09.04.2011, 21:32   #10
СтаниславАВ
Форумчанин
 
Регистрация: 10.10.2010
Сообщений: 107
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
это
"Репо (облигации).xls"
открыто, когда работает макрос?
После нажатия на кнопку "Для всех банков" должна появится такая форма:
Изображения
Тип файла: jpg Пользовательская форма.jpg (22.9 Кб, 66 просмотров)
СтаниславАВ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с базой данных pufystyj PHP 2 21.02.2011 00:09
DLL с базой данных evgenmil БД в Delphi 6 20.04.2010 21:14
помогите с базой данных Роман-33 БД в Delphi 3 06.09.2008 18:37
Работа с базой данных Dizark Помощь студентам 1 01.03.2008 20:30