不知道您使用的版本為何?我沒用過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