返回列表 上一主題 發帖

[發問] EXCEL VBA 的問題

[發問] EXCEL VBA 的問題

請問附表的檔案中,如何在工作表1中表格,使用VBA找出甲、乙、丙的最後一列數值和日期寫到工作表2中,請叫有路過的大哥可以指導一下,謝謝

另再請教,假如甲乙丙丁(欄位)有很多個,那VBA的語法又該如何調整呢

tt.rar (7.22 KB)

TT

回復 1# idnoidno
  1. Sub 巨集1()
  2. n = 1
  3. For Each Rng In 工作表1.Range("B1", 工作表1.Cells(1, Columns.Count).End(xlToLeft).Address) '第一列"動態"讀取做循環
  4.     RngRow = 工作表1.Columns(Rng.Column).Find("*", , , , , xlPrevious).Row '尋找改欄的最後一個儲存格
  5.     工作表2.Cells(n, 1) = Cells(RngRow, 1) '日期寫入工作表2
  6.     工作表2.Cells(n, 2) = Cells(RngRow, Rng.Column) '最後的數值寫入工作表2
  7.     n = n + 1
  8. Next
  9. End Sub
複製代碼

TOP

感謝大大的回復,我來研究試試看,不懂的,希望您可以接受我的請益
謝謝

TOP

請問阿lpk187大大
執行的結果有點不一樣
另外loop好像太多次

TOP

回復 4# idnoidno

我再執行一次,結果是你要的意思,不過我還是修改一下
  1. Sub 巨集1()
  2. n = 1
  3. For Each Rng In 工作表1.Range("B1", 工作表1.Cells(1, Columns.Count).End(xlToLeft).Address) '第一列"動態"讀取做循環
  4.     RngRow = 工作表1.Columns(Rng.Column).Find("*", , , , , xlPrevious).Row '尋找改欄的最後一個儲存格
  5.     工作表2.Cells(n, 1) = Rng
  6.     工作表2.Cells(n, 2) = 工作表1.Cells(RngRow, 1) '日期寫入工作表2
  7.     工作表2.Cells(n, 3) = 工作表1.Cells(RngRow, Rng.Column) '最後的數值寫入工作表2
  8.     n = n + 1
  9. Next
  10. End Sub
複製代碼
二、我程序是做動態循環,以你上傳的檔案去做的,依這個檔案只做了"甲乙丙"3次循環,所以你說的太多Loop是指3次太多嗎?

TOP

回復 4# idnoidno

執行結果如下2圖
   

TOP

大大,謝謝,可以和你線上請益依下嗎

TOP

回復 6# lpk187
  1. Sub ex()
  2. Dim Ar()
  3. Dim A As Range
  4. With 工作表1
  5. For Each A In .Range(.[B1], .[B1].End(xlToRight))
  6.    c = Application.Lookup(9.9E+307, A.EntireColumn)
  7.    d = Application.Lookup(9.9E+307, A.EntireColumn, .Columns("A"))
  8.    ReDim Preserve Ar(s)
  9.    Ar(s) = Array(A.Value, CDate(d), c)
  10.    s = s + 1
  11. Next
  12. With 工作表2
  13.    .UsedRange.ClearContents
  14.    .[A1].Resize(s, 3) = Application.Transpose(Application.Transpose(Ar))
  15. End With
  16. End With
  17. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 7# idnoidno


    要如何線上,我不會耶!

TOP

哇謝謝版主出手回應
小弟才學粗淺,可能要好好的研讀了
還是十分感謝版主

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題