返回列表 上一主題 發帖

[發問] ~ 發現一個新的問題 關於IF判斷式

回復 1# willy1205
  1. Sub Ex()
  2.     Range("A:C").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  3.     'SpecialCells        特殊目標
  4.    'xlCellTypeBlanks 空格
  5.    'EntireRow          整個列
  6. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 5# willy1205
formula is too complex to be assigned to object
公式太複雜要分配給對象
按鈕刪除,存檔後關閉Excel,開啟檔案設按鈕試試看
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 7# willy1205
  1. Option Explicit
  2. Sub Ex()
  3.     Dim R As Long
  4.     R = Range("A" & Rows.Count).End(xlUp).Row    'A欄由最後一列往上到有資料的列號
  5.     Range("A2:C" & R).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  6.     'SpecialCells       特殊目標
  7.     'xlCellTypeBlanks   空格
  8.     'EntireRow          整個列
  9. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 9# lp986749
  1. Option Explicit
  2. Sub Ex() '.SpecialCells(xlCellTypeBlanks).EntireRow 如 9# 的重疊區域 程式無法刪除
  3.     With Range("A:C")
  4.      '   MsgBox .SpecialCells(xlCellTypeBlanks).EntireRow.Address
  5.         'A2,C2 會有重疊區域 $2:$2,$2:$2,$4:$4
  6.         Intersect(.Cells, .SpecialCells(xlCellTypeBlanks).EntireRow).Delete xlUp
  7.         'Intersect 方法 傳回 Range 物件,此物件代表兩個或多個範圍重疊的矩形範圍。
  8.         '整合為不重疊的區域,程式即可刪除
  9.     End With
  10.     'SpecialCells       特殊目標
  11.     'xlCellTypeBlanks   空格
  12.     'EntireRow          整個列
  13. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 11# willy1205
我使用的2003版沒這問題
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 14# willy1205
如果今天我資料只到A43,是何情況沒說清楚,要附檔看看.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 16# willy1205
  1. Option Explicit
  2. Sub Ex_排序()  '不必刪除
  3.     With Range("A3:G37")
  4.         .Sort .Cells(1), xlAscending
  5.     End With
  6. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 20# willy1205
所以光一個導入資料的按鈕就有70個if判斷式?
要判斷什麼,沒在檔案中說明.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2014-4-11 16:40 編輯

回復 21# willy1205
所以有70個判斷式...

不需如此麻煩
  1. Sub RoundedRectangle1_Click()
  2.     Dim NewRow As Integer, E As Range, Sh As Worksheet
  3.     Set Sh = Worksheets("Sheet1")  '變數指定為工作表 **下面的程式碼如有更改 工作表 **改這變數可省麻煩
  4.     NewRow = Sh.Range("J34").Value
  5.    ' Worksheets("sheet1").Range("B8").Value  '管他是 甲君,乙君,丙君 只要這工作表(名稱)有在活頁簿中,
  6.     For Each E In Sh.Range("B8,B10")  '導入B8,B10 的儲存格
  7.         With Worksheets(E.Value)   'E.Value 的工作表
  8.             .Cells(NewRow, 1) = Sh.Range("C5")
  9.             .Cells(NewRow, 2) = Sh.Range("C6").Value
  10.             .Cells(NewRow, 3) = Sh.Range("I12").Value
  11.             .Cells(NewRow, 4) = Sh.Range("I13").Value
  12.             .Cells(NewRow, 6) = Sh.Range("G22").Value
  13.             If E.Address = "$B$8" Then   '主辦
  14.                 .Cells(NewRow, 7) = Sh.Range("H30")
  15.                 Sh.Range("J34") = NewRow
  16.             Else                                  '協辦
  17.                 .Cells(NewRow, 7) = Sh.Range("H32")
  18.                 Sh.Range("J35") = NewRow
  19.             End If
  20.         End With
  21.     Next
  22.     MsgBox "New Data added", vbOKOnly, "Data"
  23. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 23# willy1205
多看看程式區回覆的程式碼,不懂的複製下來,看看vba 視窗的說明.
再不明瞭,可發問,光看書不如無書
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 能幹不幹,不如苦幹實幹。
返回列表 上一主題