我存在表learninf擅长从这个网站vb.net连接: http://www.siddharthrout.com/2012/09/09/checking-if-a-sheet-exists/检查在Excel和记录结果作为布尔
我试图检查是否存在板材和记录结果布尔值。
Dim SheetNameToCheck As String = "Sheet1"
Dim xs As Excel.Worksheet
Dim sheet_found As Boolean
'~~> Opens an exisiting Workbook. Change path and filename as applicable
xlWorkBook = xlApp.Workbooks.Open("C:\...\myExcel2007file.xlsx")
'~~> Display Excel
xlApp.Visible = True
'~~> Loop through the all the sheets in the workbook to find if name matches
For Each xs In xlWorkBook.Sheets
If xs.Name = SheetNameToCheck Then
sheet_found = True
Else
sheet_found = False
End If
Next
If sheet_found = True Then
MessageBox.Show("The sheet " & SheetNameToCheck & " found.")
Else
MessageBox.Show("Not found.")
End If
的问题是,无论字符串你
错误检查结果当属找不到进来的for循环。 首先循环检查Excel Sheet1以查看它是否符合字符串以检查哪个是“Sheet1”。变量sheet_found显然是“真”。
但是当它转到下一张工作表时,工作表2和工作表3会变成错误,并且我无法检查该工作表是否实际存在于工作簿中。
执行此类比较时,您可能更愿意忽略大写字母并删除开始/结束空白处以完全确定。例如:'If xs.Name.Trim()。ToLower()= SheetNameToCheck.Trim()。ToLower()Then';但这是我可以从这段代码中纠正的最大值,这很好。只需确认目标文件中有一张名为Sheet1的工作表(显然不是这种情况)。 – varocarbas
PS:这是VB.NET,与vba无关 – varocarbas
谢谢你的回答 有一张名为“Sheet1”的工作表,我已经逐步调试过它。问题不在于识别工作表是否存在。它是在处理vb.net的代码。结果首先是真实的,然后是假的和另一个假的(对于表2和3) –