返回列表 上一主題 發帖

[發問] (已解決)如何搭配的儲存格數量不同自動新增對應的工作表

[發問] (已解決)如何搭配的儲存格數量不同自動新增對應的工作表

本帖最後由 freeffly 於 2012-2-22 17:04 編輯

VBA要怎麼修才能判斷當工作表的數量與要搭配的儲存格數量不同時,會自動新增對應的工作表?
如A40之後再增加”個17~個22”要怎麼寫VBA讓VBA自己增加這些工作表?



迴圈問題.rar (32.58 KB)
字典兩各字 還真難理解

回復 1# freeffly
  1. Sub Ex()
  2.     Dim R As Range
  3.     On Error GoTo Out:
  4.     With Sheets("彙總")
  5.         For Each R In .Range("B:B").SpecialCells(xlCellTypeFormulas, xlErrors) '處裡B欄中公式有錯誤值的儲存格
  6.             With Sheets.Add
  7.                 .Name = R.Offset(, -1).Text
  8.                 .[a1] = R.Offset(, -1).Text
  9.             End With
  10.         Next
  11.         .Activate
  12.     End With
  13. Out:
  14. End Sub
複製代碼

TOP

回復 2# GBKEE


    大大你的方法好像只有在B欄公式有問題時才處理
  可以在A欄有資料B欄空白或是公式有問題處理?
   原本我的思維是判斷那些儲存格數量跟工作表數量去做迴圈
  可惜我寫出來會有問題,大大的方式也提供了我不同的思考
  先謝謝!
字典兩各字 還真難理解

TOP

回復 3# freeffly
A欄有資料
  1. Sub Ex()  '處裡A欄有資料的儲存格
  2.     Dim R As Range
  3.     With Sheets("彙總")
  4.         For Each R In .Range("A:A").SpecialCells(xlCellTypeConstants)
  5.             On Error Resume Next
  6.             Sheets(R.Text).Activate
  7.             If Err > 0 Then
  8.                 With Sheets.Add
  9.                     .Name = R.Text
  10.                     .[a1] = R.Text
  11.                 End With
  12.                 Err.Clear
  13.             End If
  14.         Next
  15.         .Activate
  16.     End With
  17. End Sub
複製代碼

TOP

回復 4# GBKEE

看了大大這兩個例子又讓我學到一些
跟我原本的思考方式不太一樣
謝謝!
字典兩各字 還真難理解

TOP

回復 3# freeffly
  1. Sub ex()
  2. Dim A As Range '此例只適用工作表明稱為來源參照內容
  3. If WorksheetFunction.CountIf(UsedRange, "=#REF!") = 0 Then Exit Sub
  4. For Each A In Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
  5. If A.Value = CVErr(xlErrRef) Then
  6.   Set b = A.Precedents '來源參照
  7.   Sheets.Add(after:=Sheets(Sheets.Count)).Name = b.Text
  8. End If
  9. Next
  10. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 6# Hsieh


    Hsieh 大第三行就出現錯誤,你的方法好像是不是只有當有錯誤值時才執行?
字典兩各字 還真難理解

TOP

回復 7# freeffly

If WorksheetFunction.CountIf(UsedRange, "=#REF!") = 0 Then Exit Sub
應該要指名工作表
If WorksheetFunction.CountIf(Sheet8.UsedRange, "=#REF!") = 0 Then Exit Sub
這是指該工作表內有產生參照錯誤的儲存格數量,如果此數量為0就退出程序
學海無涯_不恥下問

TOP

回復 8# Hsieh


    謝謝回覆,大大的方式再找時間研究看看
字典兩各字 還真難理解

TOP

        靜思自在 : 人生不一定球球是好球,但是有歷練的強打者,隨時都可以揮棒。
返回列表 上一主題