Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Требуется помощь доделать код на VBA (http://forum.oszone.net/showthread.php?t=297852)

Mikle_home88 02-04-2015 22:25 2491149

Требуется помощь доделать код на VBA
 
Вообщем, в переменную хочу запихнуть параметр страницы (например по левому краю, чтобы был отступ 3). По коду он должен сравнивать с активным документом. Если поле не совпадает, то одно сообщение, если совпадает, то соответственно другой.
Вот код:
Private Sub CommandButton1_Click()
Dim f As PageSetup
f.LeftMargin = 3
If ActiveDocument.PageSetup.LeftMargin = f Then
MsgBox "Верные поля"
Else
MsgBox "Неверные поля"
End If
End Sub
Может все так просто, но не могу найти правильное решение. Если, кто знает, большая просьба HELP!! Заранее спасибо!

Iska 03-04-2015 02:19 2491211

Цитата:

Цитата Mikle_home88
(например по левому краю, чтобы был отступ 3) »

«3» — чего? Отступ в VBA в пунктах задаётся. Не маловато 3 пункта будет?


Цитата:

Цитата Mikle_home88
If ActiveDocument.PageSetup.LeftMargin = f Then »

Вы пытаетесь сравнивать значение типа «single» с объектной переменной типа «PageSetup». К тому же — неинициализированной.

Я вообще не пойму смысла в:
Цитата:

Цитата Mikle_home88
в переменную хочу »

когда достаточно простого:
Код:

Private Sub CommandButton1_Click()
    If ActiveDocument.PageSetup.LeftMargin = 3 Then
        MsgBox "Верные поля"
    Else
        MsgBox "Неверные поля"
    End If
End Sub


Mikle_home88 03-04-2015 08:55 2491262

Да, тут явная ошибка, сравнивая свойство объекта с самим объектом. Переделал вот, так If ActiveDocument.PageSetup.LeftMargin = f.LeftMargin. Но всё равно не получается. Не могу добиться с переменной f, неправильно присваиваю параметр f.LeftMargin = 3.
Iska, спасибо за ответ. Но так я, конечно, тоже пробовал. Но это всё не работает. Бех разницы, какие бы поле по левому краю я не поставил, он всегда будет выдавать "Неверные поля".
Смысл от всего этого, когда загружаю страницу через форму, и если на ней будут не те поля и табуляция, то соответственно будет выдаваться сообщение.

Mikle_home88 03-04-2015 12:23 2491350

Посмотрел в примере, что нужно вот так еще установить Set f = Selection.Range.PageSetup. Но как установить, чтобы в переменной хранилось содержимое по левому краю

Iska 03-04-2015 17:18 2491442

Вы никак не поясняете Вашего упорного желания «присобачить» объектную переменную типа PageSetup туда, где она ни разу не нужна.


Время: 08:30.

Время: 08:30.
© OSzone.net 2001-