2017-06-20 8 views
0

なぜ私はわかりません実行時間エラー424(オブジェクトが必要です)を取得するには、イメージ数=セル内の数値を設定しようとしています。すべてのヘルプは変数が整数でもオブジェクトが必要です

Public Function InsertPictureInCell() As Object 


     ImageCount = CInt(sheetImages.Cells(1, 4)) 
     Dim x As Object 


      sheetImages.Paste 
    Set x = sheetImages.Shapes(Selection) 
    x.top = [C4].top 
    x.Left = [C4].Left 
    x.Height = [C4].Height 
    Selection.ShapeRange.IncrementTop [C3].Height * ImageCount 

     'sheetImages.Shapes(picname).IncrementTop [C3].Height * ImageCount 
     sheetImages.Cells(ImageCount + 2, 2) = CStr(x.Name) 
     'sheetProject.Cells(12, 2) = PictureFileName 
End Function 
をいただければ幸いです
+0

このモジュールの上部にある「Option Explicit」をオンにします。 'sheetImages'を宣言していないかのように見えます。それとは別に、* sheetImagesには*割り当てられていないので、空のバリアントとして初期化されます。オブジェクトではないため、オブジェクトのように扱うと424エラーが発生します。 –

答えて

0

sheetImagesは、ワークシートのように見えるが、私はしたはあなたがどんなの実際sheetImagesを宣言した(またはしていないように見えます

+0

多分、ワークシートのコードネームですか? –

+0

'sheetImages'は空のバリアントに見えますが、おそらくワークシートであることを意図しています:) –

+0

私は愚かかもしれません。私はそれらのすべてをメイン関数に設定しています。この関数をテストするとき、私はそれらの値を設定する関数を呼び出しませんでした。それは今働いている。ありがとう –

0

設定されて表示されませんあなたの変数)。

それは他の場所でinitilaizedされることからスコープにでない限り、それはあなたがANのように扱う場合は424エラーが発生します空のバリアント、この関数スコープで初期化されますので、それとは別に、何も割り当ては、sheetImagesにはありませんオブジェクトではないからです。

コードモジュールの先頭にOption Explicitを使用すると、変数の宣言が有効になります(また、コンパイルエラーが発生した場合の誤植を警告します)。

関連する問題