iT邦幫忙

0

將數個工作表的Excel發佈成一份網頁檔,發佈時沒有資料的欄位也會一併被發佈,造成網頁太大瀏覽不易,請問設定改善的方法?

luwoeiren 5 年前3416 瀏覽

最近有個工作需求,需將含數個工作表的Excel發佈成一份網頁檔,但發佈時沒有資料的欄位,Excel內建數千個空白的欄跟列都被發佈了,造成檔案很大之後,網頁瀏覽也很不方便,資料只有在左上角一點點,稍後一動捲軸,就全是空白沒有資料的地方了。
因為要數張工作表一起發佈,也沒辦法用先選區域再發佈的方法,請問應該如何發佈效果會比較好?

1 個回答

6
andyboy
iT邦研究生 3 級 ‧ 5 年前
最佳解答

不知道您使用的版本為何?我沒用過WEB發佈功能,不過就您提到的的部分,應該可以使用VBA來處理所有工作表,將各工作表沒用到的 rows, columns給delete掉,然後再發佈應該就沒有多餘的欄位?
您可以先試著在Excel上,開啟會多出很多空白欄位的工作表,按下Ctrl+End看最後一欄與最後一列資料跑到哪裡了,此時應該會跑到空白處,然後手動將這多出來的空白處,欄跟列分別框起來刪除一次,儲存,重開此檔,再測試一次Ctrl+End是否已可以停在真正有資料的地方,如果OK了,再測試Web發佈,是否多出來的空白處已經刪除?
如果以上成立,那您試著寫個VBA,下面我提供給您參考,如果需要調整的,可以先試著改寫看看,或再提問。

<pre class="c" name="code">
Sub delRowsColumnsBlank()
' 預設檢測第一列(row)跟第一欄(column)最後一筆資料
' 然後刪除該筆資料後的所有儲存格(cell)
' 每個工作表都會執行到,所以請確認所有工作表內第一欄、列都有最完整欄列值

Dim objSheet As Object
For Each objSheet In Sheets

    objSheet.Select
    Rows(objSheet.Range("A65535").End(xlUp).Row + 1 & ":" & 65535).Delete
    Range(Columns(objSheet.Range("IV1").End(xlToLeft).Column + 1), Columns(256)).Delete

Next


End Sub

我要發表回答

立即登入回答