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并且contacts使用 be variants)。
    利用Dim wn As Excel.Window, contacts As Excel.Window, report As Excel.Window
  • 你需要用来Set分配一个object
    Set windows(i) = wn
  • window对象没有Cells属性
    目前尚不清楚您实际想要实现什么,但作为猜测,您可能想要Worksheets(的 a workbook)或可能Application.Workbooks而不是Application.Windows
于 2013-03-15T06:17:32.220 回答