清除變量Excel範圍時,我有一個VBS腳本複製現有的片材和我需要清除單元的動態範圍(取決於特定的Excel工作簿打開)錯誤使用VBS
我能夠清除範圍時,它是硬編碼:
Set xl = CreateObject("Excel.application")
fso.CopyFile strFileSelect, fso.GetParentFolderName(strFileSelect) & "\Newversion.xlsm"
wshShell.Run """" & fso.GetParentFolderName(strFileSelect) & "\Newversion.xlsm"""
xl.Application.Sheets("Auto").Range("E15:BP142").ClearContents
但得到的錯誤,當我嘗試
xl.Application.Sheets("Auto").Range(Cells(15, 5), Cells(142, 67)).ClearContents
其實,我最終想清楚了基於UBound函數兩個數組的範圍的範圍內,somethi吳象:
xl.Application.Sheets("Auto").Range("E15", .Cells((UBound(ArrayText)+1), (((UBound(ArrayStepText) + 1) * 2) + 5))).ClearContents
我曾嘗試用同樣的細胞,而不是.cells,試圖
set r = Range("E15", Cells(142,67))
和清算R,那也不行。
我也不能使用xlUp或類似的東西,因爲有我的數組範圍
後隱藏和保護細胞有一個類似的問題
VBS for excel: Using a script variable in Range selection
,但我不能使用重建的字符串,因爲我不知道它結束的列字母,並且必須製作查找表以確定來自陣列的UBound的列字母,並且該數字可以達到128.
S不過有一種更簡單/更有效的方法?
感謝
您正在使用全局'Cells'和'Range'對象。獲取對工作表的引用並使用完全限定的引用。 – Comintern