- ベストアンサー
VBA関数_オブジェクトが指定できない
Excel_VBAで WorksheetFunction.Sum (Range(Cells(2, 14), Cells(iCount, 14))) 上記のコードに ActiveSheet を記述(ワークシートを指定)したいのですが エラーになってしまい、何処にどのように記述してよいか ご教授よろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
多分質問のこのケースではないと思うが、私の経験では、エラー指摘が起こったのは ●Range(●Cells(2, 14), ●Cells(iCount, 14))) で●の箇所ににシートを特定しないとダメなケースを経験しました。 私の例では Dim Sh1 As Worksheet Dim Sh2 As Worksheet set Sh1=WorkSheets("Sheet1") set Sh2=WorkSheets("Sheet2") などとしているケースで、しつこく Sh1.Range( などと、シートを特定するオブジェクト名を入れました。 参考になれば。 質問の状況と別な場合は、すみません。
その他の回答 (4)
- Wendy02
- ベストアンサー率57% (3570/6232)
#3です。 >エラーになってしまい、何処にどのように記述してよいか 初歩的な話ですから、もう、こちらとしては、あれこれ言う気持ちにはなれないけれども、どう直すかではなくて、なぜ、エラーが発生するか考えてみたほうがよいと思いますね。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 iCount = Cells(65536, 14).End(xlUp).Row WorksheetFunction.Sum (Range(Cells(2, 14), Cells(iCount, 14))) 内容的に間違いがないのでしたら、「標準モジュール」に書けばよいのではありませんか?Excel VBAに限ってですが、「標準モジュール」に書くようになっていると思います。
- zap35
- ベストアンサー率44% (1383/3079)
With Activesheet WorksheetFunction.Sum (Range(.Cells(2, 14), .Cells(iCount, 14))) End With または WorksheetFunction.Sum (Activesheet.Cells(2, 14).Resize(iCount-1, 1)) なら大丈夫ではないでしょうか
- fly_moon
- ベストアンサー率20% (213/1046)
WorksheetFunction.Sum(ActiveSheet.Range(Cells(2, 14), Cells(icount, 14))) でどうですか?
お礼
ご回答有り難うございます。 目的が汎用的に使いたいので明示できる所は 明示して書いた方が良さそうなので反例を参考にさせて頂きます。 また、workbookオブジェクトも明示させたいのですが 下記の記述であっていますでしょうか。 今すぐ試せる環境で無いのでお手数おかけ致しますが ご教授よろしくお願い致します。 set Sh1= Workbooks("book1).WorkSheets("Sheet1") set Sh2= Workbooks("book1).WorkSheets("Sheet2")