2015-07-01 75 views
0

我是VBA的新手,我試圖計算一個單元格值的百分比,但它不起作用。我從Textfield中獲取百分比值,這是我爲從Excel中使用宏獲取值而設計的。使用VBA計算單元格值的百分比

這裏,我已經寫了一些代碼片段,

Set sh = ThisWorkbook.Sheets("Requirements_Ranking") 
RowCount = sh.UsedRange.Rows.Count 
RowCount = "S" & RowCount 

var1 = "50" 
If TextBox1.Value = var1 Then 

    Sheets("Requirements_Ranking").Range("B3:B10").Copy 
    Sheets("Coverage").Range("A3").PasteSpecial xlPasteValues 

    var2=(RowCount*var1)/100 
+1

什麼是行數?它是一個數字(正如代碼的第二行所示)或者它是一個字符串(因爲第三行代碼表明在哪裏向已使用的行數添加了「S」)? 什麼是TextBox1?它是一個表單控件還是來自開發人員選項卡或簡單形狀的ActiveX控件? – Ralph

+0

你的「RowCount」應該是什麼?它看起來像你需要它是一個整數(除以),但將它作爲一個字符串(添加「S」?)。如果要計算S列中使用的行數,請使用此RowCount = Range(「S」和Rows.Count).End(xlUp).Row' – BruceWayne

+0

RowCount將告知列中有多少個單元格(例如: S1-S5096)。而TextBox1是一個來自開發者標籤的ActiveX控件,在那個控制中,我給了價值,根據那個價值結果應該來... !!!! –

回答

0

試試這個

VAR1 = 50如果CINT(TextBox1.Value)= VAR1然後

+0

您好Sandesh,你的一段代碼正在工作,我的意圖是計算百分比的公式,因爲我使用var2 =(RowCount * var1)/ 100,在這一行中我得到錯誤'類型不匹配'。 –

+0

使用var2 =(RowCount * cint(var1))/ 100。另外你必須更好地理解數據類型。 :) –