簡體   English   中英

VBA用於檢查行並將返回條件的單元格返回到另一個工作表

[英]VBA for checking rows and returning cells that match criteria to another sheet

我正在努力開發針對以下挑戰的自動化解決方案(例如,除了按按鈕之外,無需用戶干預):我有一個主工作表,該工作表的每月列中包含應計數字,並在列中包含與此相關的收據編號立即向右。 收據欄的月份格式為:“ Feb”,“ Jun”,“ Dec”在頂部。

我需要從符合以下條件的每一行中,將各種單元格數據返回到工作簿中的另一個“摘要”工作表:

  1. 根據月份與“摘要”表中單元格“ x”中輸入的月份的月份匹配來確定“收據”列,例如,如果我鍵入“ Mar”,請在主“表”中找到標題為“ Mar”的列。
  2. 忽略空白行(即列A中有數據),如果“收據”列第一行中的單元格為空白,則標識該行,選擇6個不同的單元格,然后將內容返回到第一行空白行中的6個特定單元格(從摘要表中的給定行號),然后移至該列的下一行,並繼續此過程,直到結束(或行數限制)為止。 注意:“空白”單元格將具有填充顏色(有條件格式化)。

如果單元格包含數據,請移至下一行並繼續該過程。 我可以將VBA例程附加到屏幕上的按鈕上,以便每次更新結果都可以很好地完成工作。 盡管我在這里獲得了一些非常有用的代碼,例如用於檢查給定條件下的每一行,但是我仍然無法解決一個可行的解決方案,包括將相關單元格返回到摘要表中。

任何和所有反饋非常感謝。

(抱歉-尚無法發布圖片/屏幕截圖...)


更新感謝您的快速響應,Apols無法追加/粘貼電子表格示例-顯然我需要10分... :)

匯總表(Sheet1)略有不同。 列為:月(Col A),然后是4個單元格(TBD)要返回到cols BE,然后是收據編號(Col F)。 數據來自主表(Sheet4)中每個已標識的行,並放置在Sheet1中的下一個可用空白行中。 我可以修改任何示例以匹配實際位置。

我有選擇行的標准(這是從我已經確定行的循環中進行的,但是在特定月份使用固定的列引用[26-Col Z]):

如果不是,則Cells(TheRow,3).Value =“” And Cells(TheRow,26).Value =“” And Cells(TheRow,6).Value <Cells(TheRow,25).Value然后...(執行我被卡住了)

希望這一點更加清楚。 感謝您的幫助。


無法添加評論或聊天(!),因此需要進一步更新:

謝謝Tony摘要中的month列用於確認報告的月份,因為當用戶覆蓋要與之一起解析母版表的月份的源單元格時,此列將更改。 此數據轉到的人將獲得這7列,僅此而已。 該機制必須找到收據列(月),然后確定行條目為空,並且該行的列3不為空,並且應計值[Rng.Column-1]大於PO值(列4)在那排。 一旦建立了這些標准,就可以選擇收據,應計,采購訂單和其他3個數據,將其復制並粘貼到摘要表中的下一個可用空白行上。

母版表每個月都有應計和收據,因此只有一欄可以標識。

希望這可以幫助...

我正在努力使您的工作表可視化。 我將主表視為:

 ... |Accrual|  Jan|Accrual|  Feb|Accrual|  Mar|Accrual|  Apr| ...
 ... |   1.23|A12  |       |     |  23.67|A14  |       |     |
 ... |       |     |  56.78|C34  | 178.12|C56  |       |     |
 ... |   2.34|B678 |       |     |       |     | 123.82|B821 |
 ... |       |     |       |     |  96.52|D56  |       |     |

在“摘要”表中的某處,有一個感興趣的月份列表。

我需要一個變量:

Dim MonOfInt As String

和一個循環,其中一個月的時間將從工作表加載到此變量中:

With Sheets("Summary")
  MonOfInt = .Cells(R, C).Value
End With

以下是代碼移動感興趣月份的值的可能框架:

Dim ColCrnt As Long
Dim Rng As Range
Dim RowCrnt As Long
Dim RowLast As Long
  :

With Sheets("Master")
  ' Look for month of interest in row 1
  Set Rng = .Rows(1).Find(MonOfInt)
End With

If Rng Is Nothing Then
  ' No columns for this month in Master

Else
  ' Accrual and Receipt columns for this month found
  ColCrnt = Rng.Column - 1        ' Accrual column for month
  ' Find last used row in Accrual column
  RowLast = .Cells(Rows.Count, ColCrnt).End(xlUp).Row
  For RowCrnt = 2 To RowLast

    ' Code to extract values from Master and move to Summary here

  Next

  End If

End With

如果您可以在問題中添加信息以確認我的可視化並提供有關以下方面的更多信息:(1)如何檢測某行是否為空白(除了測試整個行(可選)之外,以及(2)該行的來源和目標六個單元格,然后我將嘗試填補這個答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM