Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

solowey
Статус: Студент
Рейтинг: 88
∙ повысить рейтинг »
Sergey V. Gornostaev
Статус: Специалист
Рейтинг: 52
∙ повысить рейтинг »
Megaloman
Статус: Академик
Рейтинг: 23
∙ повысить рейтинг »

∙ Basic

Номер выпуска:1128
Дата выхода:12.07.2018, 01:15
Администратор рассылки:Андреенков Владимир (Академик)
Подписчиков / экспертов:15 / 13
Вопросов / ответов:3 / 6

Консультация # 20937: Привет!!! Как в экселе с помощью бейсика реализовать следующее: в зависимости от цвета одной ячейки значение другой бы менялось...
Консультация # 18603: Здравствуйте уважаемые эксперты. Возник такой вопрос, как мне на VB6.0 сделать так, чтобы при нажатии на кнопку загаралась или погасала любая из заранее выбранных лампочек Num Lock, Caps Loock, Scroll Lock? Пожалуйста пришлите пример....
Консультация # 159917: Здравствуйте! У меня проблема: мне надо узнать размер файла, а у больших файлов (>1Гб) функция FileLen находит его неправильно, она часто выводит отрицательное значение. Скажите, пожалуйста, как еще можно узнать размер файла? Я программирую на VB6 (Visual Basic 6). ОЧЕНЬ надеюсь на помощь! Большое спасибо!...

Консультация # 20937:

Привет!!!
Как в экселе с помощью бейсика реализовать следующее: в зависимости от цвета одной ячейки значение другой бы менялось

Дата отправки: 16.05.2005, 14:17
Вопрос задал: prn
Всего ответов: 3
Страница онлайн-консультации »


Консультирует DSota:

Здравствуйте, prn!
Добавить к свойству листа при изменении функцию SelectionChange
(В примере ячейка E5 получает цвет ячейки B3).

Приложение:

Консультировал: DSota
Дата отправки: 16.05.2005, 14:43
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Александр Шевченко:

Здравствуйте, prn!
Смотри в приложении, адреса ячеек поставишь свои.

Приложение:

Консультировал: Александр Шевченко
Дата отправки: 16.05.2005, 14:53
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Puma:

Здравствуйте, prn!
Есть еще один вариант. Это использование пользовательской функции определяющий цвет ячейки. Но тогда все операции с ячейками переносятся в Excel с помощью функции ЕСЛИ.

Приложение:

Консультировал: Puma
Дата отправки: 16.05.2005, 22:26
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 18603:

Здравствуйте уважаемые эксперты. Возник такой вопрос, как мне на VB6.0 сделать так, чтобы при нажатии на кнопку загаралась или погасала любая из заранее выбранных лампочек Num Lock, Caps Loock, Scroll Lock? Пожалуйста пришлите пример.

Дата отправки: 22.03.2005, 13:42
Вопрос задал: Oleinik D.V
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Licvidator:

Здравствуйте, Oleinik D.V!
Натягиваем на форму три кнопки, вписываем код:

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_SCROLL = &H91
Private Const VK_NUMLOCK = &H90
Private Const VK_CAPITAL = &H14
Const KEYEVENTF_KEYUP = &H2 \'событие отпускания клавиши
Private Sub Command1_Click()
Call keybd_event(VK_SCROLL, 0, 0, 0) \'Hажимаем Scroll Lock
Call keybd_event(VK_SCROLL, 0, KEYEVENTF_KEYUP, 0) \'Отпускаем Scroll Lock
End Sub
Private Sub Command2_Click()
Call keybd_event(VK_NUMLOCK, 0, 0, 0) \'Hажимаем Num Lock
Call keybd_event(VK_NUMLOCK, 0, KEYEVENTF_KEYUP, 0) \'Отпускаем Num Lock
End Sub
Private Sub Command3_Click()
Call keybd_event(VK_CAPITAL, 0, 0, 0) \'Hажимаем Caps Lock
Call keybd_event(VK_CAPITAL, 0, KEYEVENTF_KEYUP, 0) \'Отпускаем Caps Lock
End Sub
Private Sub Form_Load()
Command1.Caption = "Нажать Scroll Lock"
Command2.Caption = "Нажать Num Lock"
Command3.Caption = "Нажать Caps Lock"
End Sub

Консультировал: Licvidator
Дата отправки: 22.03.2005, 16:30
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 159917:

Здравствуйте!
У меня проблема: мне надо узнать размер файла, а у больших файлов (>1Гб) функция FileLen находит его неправильно, она часто выводит отрицательное значение. Скажите, пожалуйста, как еще можно узнать размер файла?
Я программирую на VB6 (Visual Basic 6).
ОЧЕНЬ надеюсь на помощь! Большое спасибо!

Дата отправки: 08.02.2009, 12:18
Вопрос задал: AkaProc
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Megaloman (Академик):

Здравствуйте, AkaProc! Не программирую в VB6. Для VBA нашел описание функции

© Цитата: В справке по VBA прочел:
FileLen Function
Returns a Long specifying the length of a file in bytes.

Long data type
A 4-byte integer ranging in value from -2,147,483,648 to 2,147,483,647.
The ampersand (&) type-declaration character represents a Long in Visual Basic.
Тут четко указано, что FileLen правильно может вернуть значение не более 2,147,483,647
Повторюсь: Не программирую в VB6, под руками нет ни литературы, ни хелпов.
Наверное, можно поискать другую функцию, возвращающую не Long, a Double (если и в самом деле в VB6 функция FileLen возвращает значение Long, а не просто у Вас ошибка - пытаетесь значение функции присвоить переменной типа не Double).
© Цитата: В справк е по VBA прочел:
Double data type
A data type that holds double-precision floating-point numbers as 64-bit numbers
in the range -1.79769313486231E308 to -4.94065645841247E-324 for negative values;
4.94065645841247E-324 to 1.79769313486232E308 for positive values.
The number sign (#) type-declaration character represents the Double
Вашу проблему решил другим путём:
Dim Z1 As Double, Z2 As Double

MyFile1 = "W:\MOV01970.MPG"
MyFile2 = "E:\Virtual.CD\Painting_Big.iso"

Set FSO = CreateObject("Scripting.FileSystemObject")

Set File1 = FSO.GetFile(MyFile1)
Z1 = File1.Size

Set File2 = FSO.GetFile(MyFile2)
Z2 = File2.Size
В результате работы этого кода получил правильные значения
Z1 = 1 287 071 917
Z2 = 4 603 215 872
(пробелы в число вставил для читаемости)

Надеюсь этот способ получится и у Вас, разве что придётся добавить описания типов в Dim

Консультировал: Megaloman (Академик)
Дата отправки: 08.02.2009, 17:52
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Тесленко Евгений Алексеевич:

Здравствуйте, AkaProc!

Sub fileSize()
    Debug.Print Format(iLenFile("E:\Disks\FileImage.nrg"), "#,##0")
End Sub
Function iLenFile(sFileName$) As Double
Dim FSO, f
Set FSO = CreateObject("Scripting.FileSystemObject")
Set f = FSO.GetFile(sFileName)
iLenFile = FSO.GetFile(sFileName).Size
Set FSO = Nothing
End Function

Консультировал: Тесленко Евгений Алексеевич
Дата отправки: 08.02.2009, 20:18
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное