日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Q我想使用VBA代碼在單元格中輸入數(shù)組公式,如何實現(xiàn)?

A:Range對象提供了一個FormulaArray屬性,可以用來設(shè)置或者返回單元格區(qū)域中的數(shù)組公式,也就是說,在工作表單元格中輸入完后需要按Ctrl+Shift+Enter組合鍵才能最終完成的公式。

如下所示,要求工作表Sheet2中所列出的水果總的銷售金額,即分別使用各種水果的單價乘以各自的銷量后的和。

其原因可能是有以下幾種。

原因1:試圖修改數(shù)組單元格區(qū)域中的某些單元格

例如下面的代碼:

Sheet3.Range(“B1:B6”).FormulaArray= “=A1:A6=”” Excel”””

Sheet3.Range(“B1”).Value= “excelperfect”

會導(dǎo)致錯誤。可以先判斷要修改的單元格是否處于數(shù)組公式區(qū)域,例如:

With Sheet3

.Range(“B1:B6″).FormulaArray =”=A1:A6=”” Excel”””

With .Range(“B1”)

If .HasArray Then

MsgBox “單元格處于數(shù)組公式區(qū)域” & .CurrentArray.Address

End If

End With

End With

原因2:試圖在合并單元格中輸入數(shù)組公式

如果先在單元格中輸入數(shù)組公式然后再和其他單元格合并,這沒有問題。然而,不能夠在已經(jīng)合并的單元格中輸入數(shù)組公式。例如,下面的代碼將失敗:

With Sheet3

.Range(“C1:C6”).Merge

.Range(“C2″).FormulaArray =”=A1:A6=”” Excel”””

End With

可以先對要輸入數(shù)組公式的單元格進行檢查:

With Sheet3

.Range(“C1:C6”).Merge

With .Range(“C1”)

If .MergeArea.Address = .Address Then

MsgBox “沒有合并單元格”

Else

MsgBox “單元格已合并,地址為: ” & .MergeArea.Address

End If

End With

End With

原因3:數(shù)組公式存在語法錯誤,例如參數(shù)缺失或無效參數(shù)

WithSheet3.Range(“F1”)

‘SUM函數(shù)參數(shù)缺失

.FormulaArray = “=SUM()”

‘SUMIF函數(shù)的第1個參數(shù)和第3個參數(shù)不能接受數(shù)組

.FormulaArray = “=SUMIF((A1:A2 =1)*(B1:B2 ),B1,C1:C2 )”

End With

原因4:數(shù)組公式超過了255個字符

VBA幫助中指出,F(xiàn)ormulaArray屬性的值不能超過255個字符。若公式的字符超過255個字符,可以使用DailyDoseOfExcel介紹的技巧,使用Replace方法:

Public SubLongArrayFormula()

Dim theFormulaPart1 As String

Dim theFormulaPart2 As String

theFormulaPart1 =”=IF(MONTH(DATE(YEAR(NOW()),MONTH(NOW()),1))-” & _

“MONTH(DATE(YEAR(NOW()),MONTH(NOW()),1)-” & _

“(WEEKDAY(DATE(YEAR(NOW()),MONTH(NOW()),1))-1)+” & _

“{ ;1;2;3;4;5}*7+{1,2,3,4,5,6,7}-1),””””,”& _

“X_X_X())”

theFormulaPart2 =”DATE(YEAR(NOW()),MONTH(NOW()),1)-” & _

“(WEEKDAY(DATE(YEAR(NOW()),MONTH(NOW()),1))-1)+” & _

“{ ;1;2;3;4;5}*7+{1,2,3,4,5,6,7}-1)”

With ActiveSheet.Range(“E2:K7”)

.FormulaArray = theFormulaPart1

.Replace “X_X_X())”,theFormulaPart2

.NumberFormat = “m””月””d””日”””

End With

End Sub

上述程序?qū)⒃趩卧駞^(qū)域E2:K7中生成當(dāng)月的日歷。

正如本文一開始所的,F(xiàn)ormulaArray屬性還可以返回單元格中的公式。

如果想要從單個單元格中返回公式,那么無論單元格中是否包含數(shù)組公式,F(xiàn)ormula屬性和FormulaArray屬性都會返回相同的結(jié)果。然而,F(xiàn)ormula屬性和FormulaArray屬性應(yīng)用于連續(xù)的、多單元格區(qū)域時返回不同的結(jié)果。

如果單元格區(qū)域中含有數(shù)組公式,即多個單元格中為一個數(shù)組公式,那么FormulaArray屬性返回該公式。

如果單元格區(qū)域不是數(shù)組區(qū)域但所有單元格都包含相同的公式,那么FormulaArray屬性也返回該通用公式。

如果單元格區(qū)域不是數(shù)組區(qū)域且包含的公式不相同,那么FormulaArray屬性返回Null。

在上述所有三種情形中,F(xiàn)ormula屬性返回Variant型數(shù)組,數(shù)組中的每個元素表示區(qū)域中每個單元格的公式。

分享到:
標簽:excel常用函數(shù) excel常見問題 excel技巧 Excel教程
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定