返回列表 上一主題 發帖

請問:關於修改VBA語法

回復 10# GBKEE
Dear 版主,TEST OK
另外請教一下,哪一段語法是將A欄列日期下空白欄時為自動複製上一欄日期?
Just do it.

TOP

回復 11# jsc0518
兩者都可以
  1. With ActiveSheet.UsedRange.Columns("A")
  2.         If .Cells(1).End(xlDown).End(xlDown).Row <> Rows.Count Then  '判斷有空白的儲存格
  3.             .SpecialCells(xlCellTypeBlanks).Cells = "=R[-1]C"                        '沒有空白的儲存格 .SpecialCells(xlCellTypeBlanks) 程式會錯誤
  4.             .Value = .Value
  5.         End If
  6.    End With
複製代碼
  1.     For Each E In ActiveSheet.UsedRange.Columns("A").Cells
  2.         If E(1, 3) <> "" And E = "" Then E = E.Cells(0)      
  3.       'E(1, 3) => E.Cells(1, 3) ,E.Cells(0)=> E.Cells(0, 1) ** 0 -> 上一列
  4.     Next
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 12# GBKEE
Dear 版主,
謝謝您的指導
Just do it.

TOP

回復 12# GBKEE
Dear 版主
抱歉再與您請教一個問題,我想把整理過後之資料copy到另一工作表(這工作表的資料是持續有資料累計的,資料只會變更多)
要怎麼用VBA寫至該工作表
工作表"VBA"從A欄到H欄要COPY到工作表"資料庫"中
*原工作表"資料庫"中的資料仍要保留
    TT-2.rar (139.92 KB)
Just do it.

TOP

本帖最後由 GBKEE 於 2018-2-8 07:08 編輯

回復 14# jsc0518
  1. Option Explicit
  2. Sub Step1()
  3.     Dim E As Range, Rng As Range
  4.     With Sheets("vba")  'With 陳述式 在一個單一物件或一個使用者自訂型態上執行一系列的陳述式。
  5.         '1*****處理要刪除的列 的迴圈****************
  6.         For Each E In .UsedRange.Columns("A:C").Rows
  7.              'UsedRange 屬性會傳回 Range 物件,此物件代表指定工作表上的已用範圍
  8.             If (Not IsDate(E.Cells(1)) And E.Cells(1) <> "") Or E.Cells(2) <> "" Or Application.CountA(E.Cells) = 0 Then
  9.                 If Rng Is Nothing Then   'Nothing 關鍵字是用來將一個物件變數從一個實際的物件裏分離開來
  10.                    Set Rng = E   'Set(設定變數為物件)  要刪除的列(物件)指定到變數
  11.                 Else    'Not Nothing
  12.                     Set Rng = Union(Rng, E)  'Application.Union 方法 會傳回兩個以上範圍的聯集。
  13.                 End If
  14.             End If
  15.         Next
  16.         If Not Rng Is Nothing Then Rng.EntireRow.Delete   '
  17.             'Range.EntireRow 屬性會傳回 Range 物件,此物件代表包含指定範圍的整個列 (或若干列)。
  18.         '2***********A欄有空白填上日期   *******************************
  19.         For Each E In Range("a1:a" & Cells(Rows.Count, 2).End(xlUp).Row)
  20.             If E(1, 3) <> "" And E = "" Then E = E.Cells(0)
  21.         Next
  22.         '3********指定要複製的範圍*********************************
  23.        Set Rng = .UsedRange   'Sheets("vba")上已使用的範圍為 "A:H"
  24.     End With
  25.     '4**************指定的範圍複製到指定位置 **********************
  26.     With Sheets("資料庫").Range("b1").End(xlDown).Offset(1)
  27.         'Range.End 屬性 傳回 Range 物件,該物件代表包含來源範圍之區域結尾處的儲存格。
  28.         '等於按 END+向上鍵、END+向下鍵、END+向左鍵或 END+向右鍵
  29.    
  30.         'Range.Offset 屬性 會傳回 Range 物件,代表從指定之範圍位移的範圍
  31.         Rng.Copy .Cells
  32.     End With
  33. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 15# GBKEE
Dear 版大您好,
很抱歉一直請教您問題。
您可以幫我單獨寫一個(我想先學習這一部分)

資料copy到另一工作表(這工作表的資料是持續有資料累計的,資料只會變更多)
要怎麼用VBA寫至該工作表
工作表"VBA"從A欄到H欄要COPY到工作表"資料庫"中
*原工作表"資料庫"中的資料仍要保留

檔案如附件

TT-2.rar (140.07 KB)
Just do it.

TOP

回復 15# GBKEE
Dear 版主,
了解了,剛剛仔細看了VBA語法大概知道哪一段是在做甚麼動作了,感謝您的詳細解說!
Just do it.

TOP

回復 16# jsc0518
Dear 版主您好,
我將VBA濃縮成下列說明,想跟您請教一下
1.在工作表"資料庫"B欄~I攔下若有歷史資料時,VBA可以COPY過去
2.在工作表"資料庫"B欄~I攔下若歷史資料時,會發生錯誤



檔案
TT.rar (78.22 KB)

VBA 語法

Option Explicit
Sub Step1()
    Dim E As Range, Rng As Range
    With Sheets("vba")  'With 陳述式 在一個單一物件或一個使用者自訂型態上執行一系列的陳述式。
        '3********指定要複製的範圍*********************************
       Set Rng = .UsedRange   'Sheets("vba")上已使用的範圍為 "A:H"
    End With
    '4**************指定的範圍複製到指定位置 **********************
    With Sheets("資料庫").Range("b1").End(xlDown).Offset(1)
        'Range.End 屬性 傳回 Range 物件,該物件代表包含來源範圍之區域結尾處的儲存格。
        '等於按 END+向上鍵、END+向下鍵、END+向左鍵或 END+向右鍵
   
        'Range.Offset 屬性 會傳回 Range 物件,代表從指定之範圍位移的範圍
        Rng.Copy .Cells
    End With
End Sub
Just do it.

TOP

回復 18# jsc0518
可改一下
  1. With Sheets("資料庫").Range("b" & Rows.Count).End(xlUp)
  2.         If .Cells = "" Then    '第一列
  3.             Rng.Copy .Cells
  4.         Else
  5.             Rng.Copy .Offset(1)
  6.         End If
  7.     End With
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 19# GBKEE
Dear 版主,
感謝回復,可以用了,感恩!
Just do it.

TOP

        靜思自在 : 有願放在心裡,沒有身體力行,正如耕田不播種,皆是空過因緣。
返回列表 上一主題