嘿,大家我在excel vba中有一些硬編碼,它會將給定的單元格值設置爲公式,並且我有多行代碼可以爲每個單元格值執行此操作,但會更改公式看看它下面的具體欄目。Excel VBA將單元格值設置爲公式
所以我的問題是,是否有任何方式的代碼下面的東西,在1號線,這樣的公式會自動改變其尋找列在取決於列其實際。
Sheets("Standalone Non Clustered").Range("G10").Formula = "=CEILING(Worksheet!$G$9*(1+Worksheet!$G$10+Info!$B$14),5)"
Sheets("Standalone Non Clustered").Range("H10").Formula = "=CEILING(Worksheet!$H$9*(1+Worksheet!$H$10+Info!$B$14),5)"
Sheets("Standalone Non Clustered").Range("I10").Formula = "=CEILING(Worksheet!$I$9*(1+Worksheet!$I$10+Info!$B$14),5)"
Sheets("Standalone Non Clustered").Range("J10").Formula = "=CEILING(Worksheet!$J$9*(1+Worksheet!$J$10+Info!$B$14),5)"
Sheets("Standalone Non Clustered").Range("K10").Formula = "=CEILING(Worksheet!$K$9*(1+Worksheet!$K$10+Info!$B$14),5)"
Sheets("Standalone Non Clustered").Range("L10").Formula = "=CEILING(Worksheet!$L$9*(1+Worksheet!$L$10+Info!$B$14),5)"
Sheets("Standalone Non Clustered").Range("M10").Formula = "=CEILING(Worksheet!$M$9*(1+Worksheet!$M$10+Info!$B$14),5)"
Sheets("Standalone Non Clustered").Range("N10").Formula = "=CEILING(Worksheet!$N$9*(1+Worksheet!$N$10+Info!$B$14),5)"
Sheets("Standalone Non Clustered").Range("O10").Formula = "=CEILING(Worksheet!$O$9*(1+Worksheet!$O$10+Info!$B$14),5)"
Sheets("Standalone Non Clustered").Range("P10").Formula = "=CEILING(Worksheet!$P$9*(1+Worksheet!$P$10+Info!$B$14),5)"
查看如何每個範圍從字母G到P,並且每行的公式都會針對該G到P列進行調整。有沒有辦法讓Range有一行(「G10:P10」),並根據其實際在電子表格中的列進行公式更改?
編輯:
刪除$語法解決了這一問題,但我來了另外一個問題:
說我有設置爲變量的範圍內,我想添加一行到範圍變量並在上面的公式行中使用該變量。我怎麼會去增加變量由1
Set shownDatabaseRows = Sheets("Standalone Non Clustered").Range("10:10")
Set hiddenDatabaseRows = Sheets("Standalone Non Clustered").Range("11:108")
hiddenDatabaseRows.EntireRow.Hidden = True
shownDatabaseRows.EntireRow.Hidden = False
Sheets("Standalone Non Clustered").shownDatabaseRows.Formula = "=CEILING(Worksheet!G$9*(1+Worksheet!G$10+Info!$B$14),5)"
For Each cell In rng
If cell.Value >= 2048 Then
shownDatabaseRows = shownDatabaseRows.Count + 1
shownDatabaseRows.EntireRow.Hidden = False
Sheets("Standalone Non Clustered").shownDatabaseRows.Formula = "=(CEILING(Worksheet!G$9*(1+Worksheet!G$10+Info!$B$14),5))/2"
...
我在公式行,以便即時通訊思想,什麼是錯與我建立shownDatabaseRows變量的方式得到一個錯誤。有任何想法嗎?
你最好開始另一個問題。 'Count'是隻讀的,你不能改變它。我不是很瞭解你想要什麼。向shownDatabaseRows添加一個新行? 'set shownDatabaseRows = Union(shownDatabaseRows,cell.EntireRow)'? 'Sheets(「Standalone Non Clustered」)。shownDatabaseRows'沒有意義。 –
我開始了一個新的問題:http://stackoverflow.com/questions/17789077/adding-an-offset-row-to-a-given-range-excel-vba – user1305569