0
Sub Macro1()
'
' Macro1 Macro
'

'
    Dim wn, contacts, report As Excel.Window
    Dim windows(1 To 100) As Excel.Window
    Dim i As Integer

    i = 1
    For Each wn In Application.windows
        windows(i) = wn
        i = i + 1
    Next wn

    If IsEmailValid(windows(1).Cells(1, 1)) = True Then
        report = windows(1)
        contacts = windows(2)
    Else
        contacts = windows(1)
        report = windows(2)
    End If


End Sub

ここで何が間違っていると思いますか?私はVBAについて知っていることに従って最善を尽くしています。

4

1 に答える 1

1
  • 変数を正しく宣言していません (wnおよびcontactsbe variants を使用)。
    使用するDim wn As Excel.Window, contacts As Excel.Window, report As Excel.Window
  • Setを割り当てるために使用する必要がありますobject
    Set windows(i) = wn
  • windowオブジェクトにはCellsプロパティがありません
    実際に何を達成したいのかは明確ではありませんが、推測としては、(Worksheetsの)コレクションworkbookまたはおそらくApplication.Workbooksではなくコレクションが必要な場合がありますApplication.Windows
于 2013-03-15T06:17:32.220 に答える