我正在創建一個VBS文件,我將通過cscript在批處理文件中啓動。我不會使用VBA。我有能力打開它,並格式化它和其他東西,但我有多個迭代的自動過濾器,我需要從表1中剪切並粘貼到表2.表1是MasterPrinterList,表2是無效打印機VBS Autofilter剪切和粘貼多個字符串
比如我的問題就出在
myXL.ActiveSheet.Range("A:G").AutoFilter 6, "*not used*",,,True
myXL.ActiveSheet.Range("A:G").Select
myXL.Selection.SpecialCells(xlCellTypeVisible).Select
myXL.Selection.Copy
myXL.Sheets("Invalid Printers").Select
myXL.Range("A2").Select
myXL.ActiveSheet.Paste
myXL.Sheets("MasterPrinterList").Select
myXL.Application.CutCopyMode = False
我可以得到工作,但Excel的怪胎,崩潰,並說服務器扔在貼線除外。
我希望它使用自動篩選,看在列6查找包含「不使用」具有該成片第一個可用行2,然後返回到片1清除自動過濾器粘貼行的任何細胞,然後將「未使用」的自動過濾器重新粘貼到下一個可用行中的工作表2。然後回到表1,清晰的自動過濾,然後再自動篩選爲「搬到」
等等等等等等。我可以填寫自動過濾每個搜索查詢,我只是無法弄清楚如何粘貼正確地沒有崩潰excel,然後重複搜索塊爲不同的列表。
我的第一個問題顯然是
myXL.Range("A2").Select
這就需要將像第一個可用行,而不是確定小區中進行粘貼。
二是如何構建的汽車濾清器的正常工作。
我已經試過
myXL.ActiveSheet.Range("A:G").AutoFilter 6, "*moved to*"
myXL.Selection.SpecialCells(xlCellTypeVisible).Select
myXL.ActiveSheet.Range("A:G").Copy
myXL.Sheets("Invalid Printers").Activate
set objRange = myXL.ActiveSheet.UsedRange
objRange.SpecialCells(xlCellTypeLastCell).Activate
intNewRow = myXL.ActiveCell.Row + 1
strNewCell = "A" & intNewRow
myXL.Range(strNewCell).Select
myXL.ActiveSheet.Paste
myXL.Application.CutCopyMode = False
myXL.Selection.Delete -4162
myXL.ActiveSheet.Range("A:G").AutoFilter
任何幫助..?
您是否嘗試過在Excel中手動執行手動操作,將其記錄爲宏?宏中生成的VBA代碼可以幫助您在VBS中調試此問題。 – 2014-10-07 07:43:59
你應該問一個更具體的問題。例如,_「如何在Excel工作表中找到第一個空白行?」_ – Bond 2014-10-07 12:33:41