Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7246 / 13644 ツリー ←次へ | 前へ→

【40338】セルの操作について kaoru 06/7/11(火) 20:42 質問[未読]
【40339】Re:セルの操作について かみちゃん 06/7/11(火) 20:45 発言[未読]
【40349】Re:セルの操作について kaoru 06/7/12(水) 9:03 お礼[未読]
【40340】Re:セルの操作について Hirofumi 06/7/11(火) 22:28 回答[未読]
【40348】Re:セルの操作について kaoru 06/7/12(水) 9:02 お礼[未読]

【40338】セルの操作について
質問  kaoru  - 06/7/11(火) 20:42 -

引用なし
パスワード
   こんばんは、勤務表の作成で土曜日、日曜日、祝日(設定)の日は
休みを表す「公」をセルに貼り付けるコマンドです。
が・・・。
SDAY = Application.Match(Cells(5, RRET), Range("C72:C98").Date, 0)
のロジックで
実行時エラー '438': オブジェクトは、このプロパティまたはメソッドをサポートしていません。
のエラーが出ます。なぜでしょうか。教えてください。.dateだと思うのですが・
よろしくお願いいたします。
祝日は年月日(YYYY/M/D)を読みテーブルRange("C72:C98")の(YYYYY/M/Dと比較
しています。よろしくお願いいたします。

Sub 事務所公休設()定'***************************************************************
'*  事務所 公休自動貼り付け処理               *
'***************************************************************
  Dim RRET As Long
  Dim RYOUBI As String
  Dim RDAY As Date
  Dim SDAY As String
  Dim WGYO As Long
  Dim DGYOMAX As Long
 
  RRET = 5 '1日目設定
  DGYOMAX = Worksheets("事務所勤務").Range("D65536").End(xlUp).Row
 
  Do Until RRET > 36
   WGYO = 8
   MsgBox "Cells(5, RRET)" & Cells(5, RRET)
   RDAY = Cells(5, RRET)
   RYOUBI = Cells(6, RRET).Value
   SDAY = Application.Match(Cells(5, RRET), Range("C72:C98").Date, 0)
   If Application.IsError(SDAY) = False Then
     Do Until WGYO > DGYOMAX
    
     Cells(WGYO, RRET).Value = "公"
     WGYO = WGYO + 1
     Loop
   Else
     WGYO = 8
   End If
   
   If RYOUBI = "土" Then
     WGYO = 8
     Do Until WGYO > DGYOMAX
       Cells(WGYO, RRET).Value = "公"
       WGYO = WGYO + 1
     Loop
    Else
    If RYOUBI = "日" Then
     WGYO = 8
     Do Until WGYO > DGYOMAX
       Cells(WGYO, RRET).Value = "公"
       WGYO = WGYO + 1
     Loop
    Else
     WGYO = 8
    End If
    End If
   RRET = RRET + 1
   Loop

End Sub

【40339】Re:セルの操作について
発言  かみちゃん  - 06/7/11(火) 20:45 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>SDAY = Application.Match(Cells(5, RRET), Range("C72:C98").Date, 0)

RangeオブジェクトにDateというプロパティはありません。
何がしたいのか今ひとつわからないのですが、
SDAY = Application.Match(Cells(5, RRET).Value, Range("C72:C98"), 0)
でいいのではないでしょうか?

【40340】Re:セルの操作について
回答  Hirofumi  - 06/7/11(火) 22:28 -

引用なし
パスワード
   かな?

Sub 事務所公休設定2()
'***************************************************************
'*  事務所 公休自動貼り付け処理               *
'***************************************************************

  Dim RRET As Long
  Dim RYOUBI As String
'  Dim RDAY As Date
  Dim RDAY As Variant
'  Dim SDAY As String
  Dim SDAY As Variant
  Dim WGYO As Long
  Dim DGYOMAX As Long
  
  RRET = 5 '1日目設定
  DGYOMAX = Worksheets("事務所勤務").Range("D65536").End(xlUp).Row
  
  Do Until RRET > 36
    WGYO = 8
'    MsgBox "Cells(5, RRET)" & Cells(5, RRET)
    RDAY = Cells(5, RRET)
    RYOUBI = Cells(6, RRET).Value
'    SDAY = Application.Match(Cells(5, RRET).Value, Range("C72:C98"), 0)
    SDAY = Application.Match(CLng(RDAY), Range("C72:C98"), 0)
    If Application.IsError(SDAY) = False Then
      Do Until WGYO > DGYOMAX
        Cells(WGYO, RRET).Value = "公"
        WGYO = WGYO + 1
      Loop
    Else
      WGYO = 8
    End If
    If RYOUBI = "土" Then
      WGYO = 8
      Do Until WGYO > DGYOMAX
        Cells(WGYO, RRET).Value = "公"
        WGYO = WGYO + 1
      Loop
    Else
      If RYOUBI = "日" Then
        WGYO = 8
        Do Until WGYO > DGYOMAX
          Cells(WGYO, RRET).Value = "公"
          WGYO = WGYO + 1
        Loop
      Else
        WGYO = 8
      End If
    End If
    RRET = RRET + 1
  Loop

End Sub

【40348】Re:セルの操作について
お礼  kaoru  - 06/7/12(水) 9:02 -

引用なし
パスワード
   ▼Hirofumi さん:
Hirofumiさん おはようございます。
ありがとうございました。
無事完成しました。
>かな?
>
>Sub 事務所公休設定2()
>'***************************************************************
>'*  事務所 公休自動貼り付け処理               *
>'***************************************************************
>
>  Dim RRET As Long
>  Dim RYOUBI As String
>'  Dim RDAY As Date
>  Dim RDAY As Variant
>'  Dim SDAY As String
>  Dim SDAY As Variant
>  Dim WGYO As Long
>  Dim DGYOMAX As Long
>  
>  RRET = 5 '1日目設定
>  DGYOMAX = Worksheets("事務所勤務").Range("D65536").End(xlUp).Row
>  
>  Do Until RRET > 36
>    WGYO = 8
>'    MsgBox "Cells(5, RRET)" & Cells(5, RRET)
>    RDAY = Cells(5, RRET)
>    RYOUBI = Cells(6, RRET).Value
>'    SDAY = Application.Match(Cells(5, RRET).Value, Range("C72:C98"), 0)
>    SDAY = Application.Match(CLng(RDAY), Range("C72:C98"), 0)
>    If Application.IsError(SDAY) = False Then
>      Do Until WGYO > DGYOMAX
>        Cells(WGYO, RRET).Value = "公"
>        WGYO = WGYO + 1
>      Loop
>    Else
>      WGYO = 8
>    End If
>    If RYOUBI = "土" Then
>      WGYO = 8
>      Do Until WGYO > DGYOMAX
>        Cells(WGYO, RRET).Value = "公"
>        WGYO = WGYO + 1
>      Loop
>    Else
>      If RYOUBI = "日" Then
>        WGYO = 8
>        Do Until WGYO > DGYOMAX
>          Cells(WGYO, RRET).Value = "公"
>          WGYO = WGYO + 1
>        Loop
>      Else
>        WGYO = 8
>      End If
>    End If
>    RRET = RRET + 1
>  Loop
>
>End Sub

【40349】Re:セルの操作について
お礼  kaoru  - 06/7/12(水) 9:03 -

引用なし
パスワード
   ▼かみちゃん さん:
おはようございます。おそくなりましたが
ありがとうございました。
datenのプロパティはありませんよね、ありがとうございました。
>こんにちは。かみちゃん です。
>
>>SDAY = Application.Match(Cells(5, RRET), Range("C72:C98").Date, 0)
>
>RangeオブジェクトにDateというプロパティはありません。
>何がしたいのか今ひとつわからないのですが、
>SDAY = Application.Match(Cells(5, RRET).Value, Range("C72:C98"), 0)
>でいいのではないでしょうか?

7246 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free