• ベストアンサー

VBA関数_オブジェクトが指定できない

Excel_VBAで WorksheetFunction.Sum (Range(Cells(2, 14), Cells(iCount, 14))) 上記のコードに ActiveSheet を記述(ワークシートを指定)したいのですが エラーになってしまい、何処にどのように記述してよいか ご教授よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

多分質問のこのケースではないと思うが、私の経験では、エラー指摘が起こったのは ●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( などと、シートを特定するオブジェクト名を入れました。 参考になれば。 質問の状況と別な場合は、すみません。

tcpip110
質問者

お礼

ご回答有り難うございます。 目的が汎用的に使いたいので明示できる所は 明示して書いた方が良さそうなので反例を参考にさせて頂きます。 また、workbookオブジェクトも明示させたいのですが 下記の記述であっていますでしょうか。 今すぐ試せる環境で無いのでお手数おかけ致しますが ご教授よろしくお願い致します。 set Sh1= Workbooks("book1).WorkSheets("Sheet1") set Sh2= Workbooks("book1).WorkSheets("Sheet2")

その他の回答 (4)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

#3です。 >エラーになってしまい、何処にどのように記述してよいか 初歩的な話ですから、もう、こちらとしては、あれこれ言う気持ちにはなれないけれども、どう直すかではなくて、なぜ、エラーが発生するか考えてみたほうがよいと思いますね。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 iCount = Cells(65536, 14).End(xlUp).Row WorksheetFunction.Sum (Range(Cells(2, 14), Cells(iCount, 14))) 内容的に間違いがないのでしたら、「標準モジュール」に書けばよいのではありませんか?Excel VBAに限ってですが、「標準モジュール」に書くようになっていると思います。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

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)
回答No.1

WorksheetFunction.Sum(ActiveSheet.Range(Cells(2, 14), Cells(icount, 14))) でどうですか?