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

Страницы: 1
Анализ длины значения в ячейке, Надо проанализировать, полностью или частично отображается текстовое значение в ячейке.
 
Sanja, премного благодарен.
Анализ длины значения в ячейке, Надо проанализировать, полностью или частично отображается текстовое значение в ячейке.
 
Всем доброго времени суток!

Дано: ячейка, содержащая некую ссылку и имеющая некое текстовое значение переменной длины. Иногда при слишком длинном значении оно обрезается справа и естественным выходом видится уменьшить в этой ячейке размер шрифта (используется шрифт с нефиксированным знакоместом, а размер ячейки фиксирован). Есть ли средства, позволяющие проанализировать, видно ли значение в ячейке полностью или частично? Другими словами, не мала ли ячейка для отображения данного значения при установленном для неё размере шрифта?


То есть, требуется программно отследить ситуации в строках 1 и 2 дабы привести в соответствие размер шрифта.
Изменено: Борис Фоминых - 21.07.2015 09:55:20
Declare в 64-разрядной MS Excel, Проблема с переходом с 32-разрядной версии на 64-разрядную
 
С вынужденной заменой винчестера вместо 32-разрядного MS Office установлен 64-разрядный. Попутно получена проблема с использованием макроса, который ранее работал как часы (в т.ч. и для обеспечения отсчёта времени в ячейке). В частности, Excel теперь категорически не приемлет следующие операторы:
Код
Public Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Public Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long
Public Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Public Declare Function gethostname Lib "WSOCK32.DLL" (ByVal szHost As String, ByVal dwHostLen As Long) As Long
Public Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal szHost As String) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Private Declare Function MultiByteToWideChar Lib "kernel32.dll" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Private Declare Function WideCharToMultiByte Lib "kernel32.dll" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, ByVal lpUsedDefaultChar As Long) As Long
Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Документ от Microsoft http://office.microsoft.com/ru-ru/excel-help/HA010369476.aspx#_Toc254341418 сообщает: Единственным способом обеспечения работы Microsoft Visual Basic для приложений (VBA), который содержит операторы Declare, в 64-разрядной версии Office является обновление кода вручную.

Вопросы знатокам:
1. Каким образом надо обновить сей код, чтобы он работал в 64-разрядной версии?
2. Можно ли заставить макрос автоматически определять, в какой среде он работает? Или же для каждой версии Office нужна соответствующая версия кода?

Заранее премного благодарен!
Объединение ячеек недоступно
 
Друзья, коллеги!  
 
С какого-то внезапного перепугу кнопка объединения ячеек в ленте вдруг стала недоступной (Excel 2010). Недоступен также и вариант с объединением ячеек через контекстное меню по ПКМ. С макросами работаю, но ни в одном из них нет изменений свойств стандартных кнопок форматирования.  
 
Вопрос: кто виноват и что делать?
Проблема с ListBox
 
{quote}{login=VovaK}{date=29.07.2011 09:24}{thema=}{post}нужен файл или листинг. А так, сложно Вам помочь.{/post}{/quote}  
Программа весьма сложна, к ней ещё придётся отправлять инструкцию и ещё расписывать, зачем она нужна. Попробовал залить новый код в старую версию, обнаружил условие, при котором листбокс деактивируется. По этой ветке формируется и уходит (или не уходит) запрос на сервер через Интернет, обрабатывается ответ от него и результат запроса вносится в третий столбец первой строки листбокса. Прошёл всё по F8 пошагово, нигде свойства листбокса не меняются, идёт только добавление элемента и присвоение значений. А в результате - листбокс деактивирован. Смотрю при этом свойства листбокса - они без изменений.  
Похоже, придётся откатиться к предыдущей версии...
Проблема с ListBox
 
Имеется ListBox, куда в процессе выполнения программы выводится некая информация. С некоторых пор ListBox и его строки перестали активироваться, что привело к невозможности прокрутки и выбора из него. При наведении на объект курсор не меняется - должен стать стрелкой, остаётся крестиком.  
В прежних версиях программы всё работает идеально. Внесённые в программный код изменения свойств объекта ничуть не касались. При сверке свойств двух листбоксов (из новой версии и из старой) наблюдается полная идентичность, при этом у обоих листоксов .Enabled=True, .Locked=False, .MousePointer=0-fmMousePointerDefault.    
ListBox.Activate тоже не помогает.  
Что ещё может влиять на доступность листбокса? Как принудительно заставить его быть доступным?
Срочный возврат в окно Excel
 
{quote}{login=Юрий М}{date=13.07.2011 01:48}{thema=}{post}Windows("ВашаКнига.xls").activate не поможет? Вот только с окном неясно - Msgbox?{/post}{/quote}  
 
Вставил перед MsgBox'ом. Не помогло. Вкладка приложения замигала, но окно принудительно не активировалось.
Срочный возврат в окно Excel
 
{quote}{login=Юрий М}{date=13.07.2011 01:48}{thema=}{post}Windows("ВашаКнига.xls").activate не поможет? Вот только с окном неясно - Msgbox?{/post}{/quote}
Срочный возврат в окно Excel
 
Доброго всем времени суток!  
Дано: Некий рабочий процесс, в ходе которого в рабочей книге отсчитывается время. При достижении определённого момента включается звуковая сигнализация и появляется окно сообщения. В это время юзер может отвлечься от процесса, например, читая новости в Интернете.    
Требуется: В дополнение к перечисленному ещё и вернуть юзера к управлению процессом, активизировав окно Excel с исполняемой рабочей книгой.
Страницы: 1
Наверх