簡體   English   中英

使用列中的值指定/激活特定行

[英]Using values in a column to designate/activate a specific row

我目前有一個代碼,可以找到特定列中的第一個空單元格,並將“SumIfs”計算的結果保存到該單元格中。 它針對多個條件運行多個列。 下面的示例是我搜索條件“R”和“ECHO”的一個實例,將第 16 列中的相應值相加,並將結果放在另一個工作表的“C”列中:

Sub SumIfs()

Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Sheets("previous_day_split")
Worksheets("daily_balance").Activate

Range("C" & Rows.Count).End(xlUp).Offset(1, 0).Value = _
Application.SumIfs(ws2.Columns(16), ws2.Columns(15), "R", ws2.Columns(20), "ECHO")

End Sub

它工作得很好,但現在我想找到一種方法來根據特定日期指定一行(並不總是第一個空行),而不是僅僅將結果放在列“C”的第一個空單元格中“daily_balance”的第一列。

簡而言之,例如,我希望代碼在工作表“daily_balance”的第一列中搜索日期(比如 11/2/2015),將該行指定為將值轉儲到的行,運行 SumIfs “ws2”中的函數,並將結果放在包含 11/2/2015 的行的“C”列中。

關於根據標准指定行的最佳方式的任何建議或想法?

您可以使用Do While循環輕松查找列中的特定值:

i = 0
Do While Cells(i, "A") <> {lookup_value} And Cells(i, "A") <> ""
    i = i + 1
loop

'Check that {i} holds row number for our lookup value and not for an empty one
if Cells(i, "A") = {lookup_value} then
    'Do your calculations here
    'And then use {i} as row number to save your result.
end if

所以{lookup_value}是一個常量或變量,用於保存您要查找的日期。 如果您的日期格式不正確,您可能需要使用CDate()將您的 lookup_value 和單元格值設置為相同的格式,這意味着而不是:

Do While Cells(i, "A") <> {lookup_value} And Cells(i, "A") <> ""

你應該使用:

Do While CDate(Cells(i, "A")) <> CDate({lookup_value}) And Cells(i, "A") <> ""

祝你好運,隨時詢問更多細節。

暫無
暫無

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

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