看板 Office 關於我們 聯絡資訊
軟體:excel 版本:2007以上 我有個table類似 班級 姓名 分數 一班 A 50 二班 B 60 . . . . . . . . . . . . 用錄製巨集+修改弄了個檔案: https://drive.google.com/open?id=0BwCgrQhGgaw7UHZpd1pUN25pNE0 主要有兩個問題 1.我是把班級複製到P欄位 然後移除重複 用迴圈跑這段 然後 新增檔案 複製過去 存檔關閉 不知道這段若是不要複製P欄位移除重複的方式 直接在班級那邊就取唯一值不知道該怎麼改? 2.存檔後都會多出sheet2 sheet3等工作表 雖說可以直接刪這兩個工作表 但是不知道有沒有方式直接輸出檔案像是一班.xlsx 裡面只有唯一一個一班的工作表? 感謝各位大大.. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.67.77 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1494553347.A.4AB.html ※ 編輯: ptguitar (60.250.67.77), 05/12/2017 09:42:58
soyoso: 問題1,dictionary、判斷字串配合instr或判斷array配合工 05/12 10:15
soyoso: 作表函數match 05/12 10:15
感謝S大 不過我用application countif寫 移動範圍計算 若是=1 就新增workbook方式 但是都會到一班那邊出錯 不知道怎麼回事 VBA初學者問題很多 感謝指教^^ https://drive.google.com/open?id=0BwCgrQhGgaw7MDdmNDY5aHphcTg For i = 2 To Range("A2").End(xlDown).Row If Application.CountIf(Range("A2:A" & i), Range("A" & i)) = 1 Then With mytable .AutoFilter 1, Range("A" & i).Value .Copy End With Workbooks.Add 1 With ActiveSheet.Range("A1") .PasteSpecial xlPasteValues .PasteSpecial xlPasteFormats End With ActiveSheet.Name = Range("A" & i).Value ActiveWorkbook.SaveAs "d:\輸出\" & Range("A" & i).Value & ".xlsx" Workbooks(Range("A" & i).Value & ".xlsx").Close SaveChanges:=False Application.CutCopyMode = False mytable.AutoFilter End If Next i
soyoso: 問題2,workbooks.add 1 05/12 10:23
soyoso: 或sheetsinnewworkbook指定數量後再新增活頁簿 05/12 10:27
※ 編輯: ptguitar (60.250.67.77), 05/12/2017 14:46:40
soyoso: 將activesheet.name、activeworkbook.saveas和workbooks() 05/12 14:55
soyoso: .close指定range("a" & i)的部分改為range("a2") 05/12 14:55
ptguitar: 感謝S大!是因為篩選後會留下range("A2")那筆嗎? 05/12 15:11
soyoso: 為篩選後複製到新活頁簿工作表儲存格a2那筆 05/12 16:13
ptguitar: 了解!! 05/12 16:19
ptguitar: 剛剛研究知道自己問題出那了 感謝soyoso大大提示~ 05/12 16:38