Excel: VBA сообщает о разной ширине фигуры, когда один и тот же файл открывается на разных компьютерах

411
xyk

Я почесал голову, почему. На обоих компьютерах установлена ​​64-разрядная версия Win7 pro и одна и та же версия Excel (версия 1708, сборка 8431.2236). В электронную таблицу вставлено 8 изображений. Это то, что я использовал, чтобы сообщить ширину изображения:

 For Each p In ActiveSheet.Shapes MsgBox ("TL row: " & p.TopLeftCell.Row & ", TL column: " & p.TopLeftCell.Column & " ,image width: " & p.Width) 

Вот что я получил на двух компьютерах:

 computer 1 computer 2 14, 1, 72 14, 1, 73.2 157, 4, 379.5 157, 4, 386.4 182, 4, 379.5 182, 4, 386.4 208, 4, 379.5 208, 4, 386.4 234, 4, 379.5 234, 4, 386.4 260, 4, 379.5 260, 4, 386.4 286, 4, 379.5 286, 4, 386.4 418, 5, 198 418, 5, 201.6 

Я понимаю, что не может быть "ответа" на мой расплывчатый вопрос. Однако любая подсказка / идея была бы оценена!

3
это точно такой же файл? или вы копируете / вставляете фигуры с одного листа на другой ?, фигуры в Excel могут быть «привязаны» к размеру ячейки, также при копировании с одного листа на другой с другим масштабированием Excel не делает точную копию. arana 6 лет назад 1
Какое разрешение экрана / дисплея используют эти 2 ПК? nixda 6 лет назад 0
@arana да точно такой же файл, без копирования / вставки. xyk 6 лет назад 0
@nixda у меня двойное 1920 x 1080. Мне нужно выследить моих коллег, он много в поле - вы думаете, это может быть возможной причиной? xyk 6 лет назад 0
Разрешение дисплея (и, вероятно, масштабирование тоже) почти наверняка виноваты здесь. music2myear 6 лет назад 0
Обратите внимание на ребят, особенно на @ music2myear. Я попробовал это на мониторе 1280x1024, который сообщает те же цифры, что и компьютер моего владельца. Затем я изменил масштаб моего дисплея со 100% до 125%, и сообщенные цифры на моем компьютере совпали с сообщением моего коллеги. Я все еще в замешательстве, хотя. Я думал, что сообщенный размер был в числе пикселей, которые должны быть независимы от разрешения / масштаба? Глядя на MSDN, говорят, что он находится в «точке» - что такое «точка»? xyk 6 лет назад 0

1 ответ на вопрос

1
music2myear

Точка является абстрактным измерением попытки легализовать пиксели и масштабирование в более реальном мире метрики. (см. обновление 1 ниже)

Пиксель является физической конструкцией на экране с определенным и реальным размером и формой.

Масштабирование - это способ привести приложения в соответствие с используемыми размерами на ЖК-дисплеях с исходным разрешением.

Проблема, с которой вы сталкиваетесь, заключается в том, что Excel, вероятно, использует точки для определения размера данного объекта, и на разных дисплеях с разными разрешениями и различными настройками масштабирования размер точки может различаться, и, следовательно, расположение диаграммы или объекта также будет колебаться.

Существуют способы определения размера элементов в Excel с помощью эмпирических мер, но они могут просто обратить проблему, а не решить ее.

ОБНОВЛЕНИЕ 1: возможно, я ошибся насчет очков. Похоже, что в Excel используются точки «PostScript», которые являются эмпирическим измерением 1/72 дюйма. Точки используются в других системах оформления экрана так, как я описал выше. Основная проблема в том же: Excel пытается сделать все возможное, на разных экранах, разрешениях и масштабах, чтобы все работало правильно.

Для дополнительного чтения:
https://forums.techguy.org/threads/units-used-in-excel.178564/
Как сделать клетки идеальными квадратами в Excel?
http://dailydoseofexcel.com/archives/2004/06/01/column-widths-in-points/

Я все еще борюсь с точечной вещью, если уже есть измерения в реальном мире (например, дюймы), а также пиксели, в чем преимущество чего-то вроде «точки». Но я точно знаю, почему я столкнулся со своими проблемами сейчас, чем до того, как вы помогли вам, ребята. Спасибо! xyk 6 лет назад 0
Ответ обновлен. music2myear 6 лет назад 0

Похожие вопросы