2013-03-12 99 views
0

這對於實驗VBA開發人員/用戶來說可能是一段相當簡單的代碼,但即時新的編程Im已經停留在這個任務上幾天了:(我需要的是將一個公式應用到用戶定義的範圍內(如果可能的話)或者用「for-each next」或「for next」循環遍歷它,並且我爲每次試圖嘗試的每一次嘗試都會出錯。任何人都可以幫助我出這個問題,請.... thxs非常提前將公式應用於整個範圍

比方說,該公式是一些容易爲F = M * A,是「M」我的選擇範圍

下面的代碼選擇範圍:

Option Base 1 


    Sub KVmodel() 

    'Select the data points from the excel spreadsheet 

    Dim A, B As Range 
    Set A= Application.InputBox("Select A Range", "Select a range", Type:=8) 
    Set B= Application.InputBox("Select B Range", "Select a range", Type:=8) 


    'Verify the lenght of the selected data 
    If A.Count = B.Count Then 
    MsgBox "Do you want to run the KV Model Adjustment?", vbYesNo 


    'Calculates F according to the values of the model 

    - 
    - 
    - 


    Else 
    MsgBox "The range sizes are different, please re-select the input data" 

    End If 

    End Sub 
+0

你想公式插入每個單元格或插入VBA計算公式的結果呢?你給出的公式例子,你說的是什麼,一個怎麼樣?也是在整個範圍內?或者它裏面的一個單元格,對於一個單元格是相同 – NickSlash 2013-03-12 22:27:12

+0

對不起,因爲不是更精確,「a」意味着一個標量,並且整個想法將會生成另一個範圍或數組,作爲應用於所選範圍的公式的結果。 PS:thxs爲您的及時答案;) – 2013-03-12 22:35:31

+0

所以你有3個範圍? A,B和M(你選擇的),你想用A和B做些什麼,然後把結果放在M中?或者你有2個範圍,A和B,對A做些什麼並把結果放在B中? – NickSlash 2013-03-12 22:54:45

回答

0

試試下面的代碼:

Option Base 1 


Sub KVmodel() 

    On Error Resume Next 

    'Select the data points from the excel spreadsheet 

    Dim A As Range, B As Range 
    Set A = Application.InputBox("Select A Range", "Select a range", Type:=8) 
    Set B = Application.InputBox("Select B Range", "Select a range", Type:=8) 

    Dim userDefinedRng As Range ' assumption 
    Set userDefinedRng = Range("A1:A10") 

    On Error GoTo 0 

    If Not A Is Nothing And Not B Is Nothing Then 

     'Verify the lenght of the selected data 
     If A.Count = B.Count Then 
      retVal = MsgBox("Do you want to run the KV Model Adjustment?", vbYesNo) 

      If retVal = vbYes Then 
       'Calculates F according to the values of the model 
       userDefinedRng.FormulaR1C1 = "= 1 * 2" ' here it applies forumla to whole userdefined range 
       MsgBox "yes" 
      Else 
       MsgBox "no" 
      End If 

     Else 
      MsgBox "The range sizes are different, please re-select the input data" 

     End If 
    End If 

    Exit Sub 

End Sub 
+0

Thxs for your help 2063626.至少它運行沒有錯誤,但我得到的是從A1到A10的固定一維數字2向量。位置不是問題,易於修改,問題是價值:我試過差異。在If retVal內的輸入以及不同的選定範圍內,它一直給我一個unidim。 2無論我選擇什麼:(無論如何thxs的向量。 – 2013-03-13 11:46:18

+0

@Migel Varga親切的投票,如果我的帖子是有幫助的。 – 2013-03-13 11:47:52