2017-04-23 135 views
1

以下过程旨在搜索通过文件对话框打开的工作簿的每个工作表。然后它搜索一个句子并设置该行,然后搜索该行中的值。通过工作簿的每个工作表进行故障搜索

打开文件后,它会在工作簿的每个工作表中运行,但似乎指的是工作簿打开的值。如果在封面上打开,则有时会引用该表中的值。

我在做什么不正确? 抱歉格式不正确。

`Sub FindPlanswGI() 
Dim wb As Workbook 
Dim wb1 As Workbook 
Dim ws As Worksheet 
Dim CRD As String 
CRD = FolderSelection 

Set wb1 = Workbooks.Open(CRD) 

For Each ws In wb1.Sheets 
Dim NHGI As Range 
Dim MX As Range 
Dim NH As Range 
Dim LC As Long 
Dim NHV As Range 
Dim MXV As Range 
Dim i As Long 

Set NH = ws.Range("B:B").Find("Searching for this non sentence.") 
Set MX = ws.Range("B:B").Find("Searching for this non sentence too.") 

    If NH Is Nothing Then 

    MsgBox "Not here" + ws.Name 
    GoTo NextWSH 
    Else 
     MsgBox "here" + ws.Name + NH.Address + MX.Address 
    End If 
'i = 4 to LC 
'LastRow 
Set MXV = Cells(MX.Row, 4) 
Set NHGI = Cells(NH.Row, 4) 
Set NHV = Cells(NHGI.Row + 1, 4) 

    If NHGI = "N/A" Or NHV = MXV Then 
     MsgBox "Here" + ws.Name + NHGI.Address 
    Else: MsgBox "No" + ws.Name + NHGI.Address 

    End If 
NextWSH: 
    Next ws 
wb1.Close 
End Sub 

回答

1

我认为您的单元格分配为MXV,NHGI和NHV范围需要ws工作表对象。所以:

Set MXV = ws.Cells(MX.Row, 4) 
Set NHGI = ws.Cells(NH.Row, 4) 
Set NHV = ws.Cells(NHGI.Row + 1, 4) 
相关问题