返回列表 上一主題 發帖

excel 巨集 這是那錯了?出現執行階段錯誤1004應用程式或物件定義上錯誤

excel 巨集 這是那錯了?出現執行階段錯誤1004應用程式或物件定義上錯誤

excel 巨集 這是那錯了?出現執行階段錯誤1004應用程式或物件定義上錯誤

這是一個簡單的 excel

我要在 H18~H268  填滿公式
'=IF(COUNTIF($B$18:$B18,$B18)=1,SUMIF($B$18:$B$267,B18,$G$18:$G$267),"")
'=IF(COUNTIF($B$18:$B19,$B19)=1,SUMIF($B$18:$B$267,B19,$G$18:$G$267),"")
'=IF(COUNTIF($B$18:$B20,$B20)=1,SUMIF($B$18:$B$267,B20,$G$18:$G$267),"")

我用巨集來協助

Sub Macro1()
'
' Macro1 Macro
' AMD945 在 2017/6/5 錄製的巨集
'
' 快速鍵: Ctrl+u
'
        Dim row_i As Long
                                For row_i = 18 To 258
'=IF(COUNTIF($B$18:$B18,$B18)=1,SUMIF($B$18:$B$267,B18,$G$18:$G$267),"")
'=IF(COUNTIF($B$18:$B19,$B19)=1,SUMIF($B$18:$B$267,B19,$G$18:$G$267),"")
'=IF(COUNTIF($B$18:$B20,$B20)=1,SUMIF($B$18:$B$267,B20,$G$18:$G$267),"")

'Sheets("Sheet1").Cells(row_i, 8) = "=IF(COUNTIF($B$18:$B"&row_i&",$B"&row_i&")=1,SUMIF($B$18:$B$267,B"&row_i&",$G$18:$G$267),"""")"

Sheets("Sheet1").Cells(row_i, 8) = "=IF(COUNTIF($B$18:$B"

                                Next row_i
End Sub

我將公式轉成 字串,來填入 cell

Sheets("Sheet1").Cells(row_i, 8) = "=IF(COUNTIF($B$18:$B"&row_i&",$B"&row_i&")=1,SUMIF($B$18:$B$267,B"&row_i&",$G$18:$G$267),"""")"
但是程式一直出現  執行階段錯誤1004應用程式或物件定義上錯誤

我將字串一直刪,刪到

Sheets("Sheet1").Cells(row_i, 8) = "=IF(COUNTIF($B$18:$B"

還是有問題,我真的無能為力了,為什麼這麼簡單的字串還能錯?

※excel 2003 test1.zip (9.9 KB)
公開經驗,創造智慧(我又不靠這過活)

自己解:

'Sheets("Sheet1").Cells(row_i, 8) = "=IF(COUNTIF($B$18B"&row_i&",$B"&row_i&")=1,SUMIF($B$18B$267,B"&row_i&",$G$18G$267),"""")"

dim row_str as string


row_str="=IF(COUNTIF($B$18B"&row_i&",$B"&row_i&")=1,SUMIF($B$18B$267,B"&row_i&",$G$18G$267),"""")"

Sheets("Sheet1").Cells(row_i, 8) = row_str

填入完整的字串就不會有error

好奇怪呀~~~~
公開經驗,創造智慧(我又不靠這過活)

TOP

參考: https://stackoverflow.com/questions/18574413/weird-run-time-1004-error-with-strings-in-excel-vba

附註: string 如果不完整,代入公式就會一直出現 error ,而且很難找

可以這樣 加入 『'』號
row_str="=IF(COUNTIF($B$18:$B" &row_i& ",$B&18)=1,SUMIF($B$18:$B$267,B"&row_i&",$G$18:$G$267),"")"
row_str="'=IF(COUNTIF($B$18:$B" &row_i& ",$B&18)=1,SUMIF($B$18:$B$267,B"&row_i&",$G$18:$G$267),"")"
變成寫入字串,而不是公式,這樣才能快速除錯
公開經驗,創造智慧(我又不靠這過活)

TOP

        靜思自在 : 能善用時間的人,必能掌握自己努力的方向。
返回列表 上一主題