大家在使用平台的时候,都会遇到这样的问题,程序开发完了,发现客户端的屏幕分辨率都不一样,导致显示的结果不一样,那如何更好的解决这个问题呢?只需简单的几行VBA代码就可以。
Declare Function GetSystemMetrics32 Lib "user32" _
Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
Sub auto_open()
Application.ScreenUpdating = False
Dim X As Long, Y As Long
X = GetSystemMetrics32(0) ' 宽度(像素)
Y = GetSystemMetrics32(1) ' 高度(像素)
Dim i, j, k, l
For j = 3 To 32 ’‘’‘’32为信息区域的列的最大值,需要根据实际情况修改
k = Cells(2, j).ColumnWidth
Cells(2, j).ColumnWidth = k * X / 1024 '将当前分辨率的宽度值除以1024,1024为建立模板时正好的屏幕尺寸值。
Next
For i = 5 To 37 ’‘’‘’37为信息区域的行的最大值,需要根据实际情况修改
l = Cells(i, 3).RowHeight
Cells(i, 3).RowHeight = l * Y / 768
Next
‘’‘’‘通过for循环来更改每行列的值,但这样的话,字体不会改变,效果不好也可以通过控制缩放比例的方法ActiveWindow.Zoom = 100 * X / 1024 判断当前分辨率的宽度值与1024的比例关系,放大缩小相应的比例。Application.ScreenUpdating = True
End Sub
Declare Function GetSystemMetrics32 Lib "user32" _
Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
Sub auto_open()
Application.ScreenUpdating = False
Dim X As Long, Y As Long
X = GetSystemMetrics32(0) ' 宽度(像素)
Y = GetSystemMetrics32(1) ' 高度(像素)
Dim i, j, k, l
For j = 3 To 32 ’‘’‘’32为信息区域的列的最大值,需要根据实际情况修改
k = Cells(2, j).ColumnWidth
Cells(2, j).ColumnWidth = k * X / 1024 '将当前分辨率的宽度值除以1024,1024为建立模板时正好的屏幕尺寸值。
Next
For i = 5 To 37 ’‘’‘’37为信息区域的行的最大值,需要根据实际情况修改
l = Cells(i, 3).RowHeight
Cells(i, 3).RowHeight = l * Y / 768
Next
‘’‘’‘通过for循环来更改每行列的值,但这样的话,字体不会改变,效果不好也可以通过控制缩放比例的方法ActiveWindow.Zoom = 100 * X / 1024 判断当前分辨率的宽度值与1024的比例关系,放大缩小相应的比例。Application.ScreenUpdating = True
End Sub