我有5028行,不包括標題和3列,想要通過更改列「B」中的值在「C」中設置值1.7。目標查找多行 - MS-Excel宏
使用目標查找選項它可能只適用於一個單元格。我想爲5028行做同樣的事情,請通過運行一些宏來幫助完成任務。
我有5028行,不包括標題和3列,想要通過更改列「B」中的值在「C」中設置值1.7。目標查找多行 - MS-Excel宏
使用目標查找選項它可能只適用於一個單元格。我想爲5028行做同樣的事情,請通過運行一些宏來幫助完成任務。
約翰·布斯托斯指出,正確的想法,這裏是一個有效的解決方案:
Public Sub Demo()
Dim rngRow As Range
For Each rngRow In UsedRange.Rows
rngRow.Cells(1, 3).GoalSeek Goal:=1.7, ChangingCell:=rngRow.Cells(1, 2)
Next rngRow
End Sub
編輯:
使用ActiveSheet.UsedRange.Rows
而不是UsedRange.Rows
,如果您打算將此作爲模塊中的宏使用,而不是作爲工作表之一或任何其他對vali的引用d範圍。
對於您的示例,您可能更願意使用:Range("A2:C5028").Rows
或MySheet.Range("A2:C5028").Rows
。
編輯:
Public Sub Demo()
On Error Resume Next
Dim rngRow As Range
For Each rngRow In ActiveSheet.UsedRange.Rows
rngRow.Cells(1, 3).GoalSeek Goal:=1.7, ChangingCell:=rngRow.Cells(1, 2)
Next rngRow
End Sub
嗨jook,非常感謝..但我在vba爲零,我只是試圖在模塊中複製你的代碼並執行,我得到'object required'錯誤,然後如你所說我將它改爲activesheet.usedrange.rows,那麼我得到'參考是無效的'錯誤。請幫助,如果可能的話,請給我準確的代碼,可以將其放入模塊中。 – davidb
嗨,jook,它工作得很好。非常感謝你。 – davidb
@davidb好吧,現在,這不會中斷,但請記住,5028行需要相當長的一段時間。它應該作爲一個模塊宏。如果您只需要在特定的工作表或區域上使用它,請使用'CodeNameOfYourWorksheet.Range(「A2:C5028」)。行 - - 代號不同於你可以在excel中看到的工作表名稱 - 只是google它;) – Jook
您可以創建一個循環,然後宏做了範圍,目標尋求 - http://msdn.microsoft.com/en-us/library/office/bb209907%28v=office.12%29.aspx
它應該是可能的。您是否嘗試過製作自己的宏? Excel可以通過記錄您的操作自動創建一個宏,然後您可以編輯它創建的代碼。 – PowerUser
好奇......這是某種單向散列,它會阻止您僅僅通過反轉計算來確定列B中的值?即一個簡單的公式?聽起來像你可能不需要一個宏或「目標搜索」功能。 – Marc