返回列表 上一主題 發帖

[發問] excel列高隨電腦windows 7 設定不同而有差異

[發問] excel列高隨電腦windows 7 設定不同而有差異

下列的巨集遇到一個問題無法解決 想請教除了手動調整windows設定外 能否以巨集方式自動處理?
因為表格(列高、欄寬均有固定規格)有複製需要 故以下列程式碼處理
但此程式碼在本人電腦運作正常 在他人電腦會發生表格跑掉情形
經過確認原始表格的列高數值(右鍵確認列高)是固定的  但問題出在於windows 7設定
控制台>外觀及個人化>讓螢幕上的內容更容易閱讀
我的設定是100%,他人的設定是125%
導致我的表格在預覽時都正常 但他人的電腦在預覽第三頁之後就開始跑掉(第4頁的資料跑到第3頁…等)
請教該如何處理?
  1.     If myPhoto <> "" Then                                             
  2.         j = 25
  3.         Set Rng = Rows("1:24")
  4.             Rng.Copy                                                         
  5.         For i = 1 To (countPhoto - 1)
  6.             With ActiveSheet.Cells(j, 1)                                 
  7.                  .PasteSpecial Paste:=xlPasteAll
  8. '                .PasteSpecial Paste:=xlPasteFormats                          
  9.             End With
  10.             j = j + 24
  11.         Next i
  12.         Application.CutCopyMode = False
複製代碼
HELLO !!

回復 8# GBKEE
GBKEE大:
試過提供的方法 還是無法解決跳頁的問題  再拜託GBKEE大了…
HELLO !!

TOP

回復 6# GBKEE
GBKEE大:
經過嘗試 雖然可以固定列高 但這方法在改變螢幕比例(不是縮放比例)後仍會發生相同的問題
再麻煩 GBKEE大
HELLO !!

TOP

回復 9# stillfish00
stillfish00大:
嘗試你的建議程式碼  還是會超出該頁面  我想可能不是縮放比例的關係
因為我的工作表列高值和別人電腦的列高值 完全一樣
我電腦的登錄檔設定值 = Hex 60 時, 10進位值 = 96 (其意 為 96 DPI, = 100%)
別人電腦登錄檔設定值 = Hex 78 時, 10進位值 = 120 (其意 為 120 DPI, = 125%)
結果就是我印出來都正常 別人印出來就開始出現錯位情形
感謝stillfish00大
HELLO !!

TOP

回復 5# baconbacons
沒有要你設定為100啊,是要你在copy完執行一次 4# 的 AutoZoom,讓他去自動調整
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 7# baconbacons
ThisWorkbook的
Private Sub Workbook_Open()
在檔案開啟時自動執行的程式.
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
在活頁簿中選擇作用中工作表時自動執行的程式.

你的情況可能須在這程式中一一指定個別儲存格的欄寬,列高
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# GBKEE
GBKEE大:
問一個笨問題,是要把這三個Private Sub都貼在ThisWorkbook的模組再執行嗎?
還是貼在原本自己的程式碼中?因為我的儲存格並非每一列高、每一欄寬都固定大小
而是將24列合併儲存格後,以此合併儲存格為樣板去複製,所以才會有下列程式碼的作法
Set Rng = Rows("1:24")
            Rng.Copy
HELLO !!

TOP

回復 5# baconbacons
試試看

ThisWorkbook 模組的活頁簿事件
  1. Option Explicit
  2. Const My_Width = 9.11  '指定欄的寬度
  3. Const My_Height = 20.4 '指定列的高度
  4. Private Sub Workbook_Open()
  5.     儲存格的調整 ActiveSheet
  6. End Sub
  7. Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  8.     儲存格的調整 Sh
  9. End Sub
  10. Private Sub 儲存格的調整(Sh As Worksheet)
  11.     With Sh.Cells
  12.         .ColumnWidth = My_Width
  13.         .RowHeight = My_Height
  14.     End With
  15. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# stillfish00
stillfish00大:

我直接將ActiveWindow.Zoom的值設定為100  但問題還是沒解決 我想縮放比例和LogPixels好像是意思不同
ActiveWindow.Zoom = 100
煩請stillfish00大再指教
HELLO !!

TOP

回復 1# baconbacons
可以試試用放大縮小,使某範圍顯示在一整頁
EX:  假設1~24行為一頁
  1. Sub AutoZoom()
  2.   ActiveSheet.Range("1:24").Select
  3.   ActiveWindow.Zoom = True
  4. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

        靜思自在 : 成功是優點的發揮,失敗是缺點的累積。
返回列表 上一主題