我想测试当前工作簿中的某些工作表是否存在于另一个已关闭的工作簿中,并返回一条消息,说明哪些工作表导致错误。
我不想打开/关闭工作簿,因此我尝试更改随机单元格中的公式以链接到文件路径(fp)的工作簿以测试工作表是否存在。
我用虚拟表测试了这个,我知道它不存在于另一个工作簿中并且它可以工作但是当我有多张导致错误的工作表时,我得到了一个"应用程序 - 定义的或对象定义的错误"。在第二次迭代中,我相信错误处理的写入方式会导致崩溃,但我并不完全理解它是如何工作的。
我得到的代码是:
Sub SheetTest(ByVal fp As String)
Dim i, errcount As Integer
Dim errshts As String
For i = 2 To Sheets.Count
On Error GoTo NoSheet
Sheets(1).Range("A50").Formula = "='" & fp & Sheets(i).Name & "'!A1"
GoTo NoError
NoSheet:
errshts = errshts & "'" & Sheets(i).Name & "', "
errcount = errcount + 1
NoError:
Next i
Sheets(1).Range("A50").ClearContents
If Not errshts = "" Then
If errcount = 1 Then
MsgBox "Sheet " & Left(errshts, Len(errshts) - 2) & " does not exist in the Output file. Please check the sheet name or select another Output file."
Else
MsgBox "Sheets " & Left(errshts, Len(errshts) - 2) & " do not exist in the Output file. Please check each sheet's name or select another Output file."
End If
End
End If
End Sub
希望你们能在这里帮助我,谢谢!
答案 0 :(得分:2)
这是一种略有不同的方法:
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCellWithIdentifier("mainCell") as? mainCell {
cell.mainHeader.text = (mainHeader[indexPath.row])
cell.mainBody.text = (mainBody[indexPath.row])
cell.mainBody.numberOfLines = 0
cell.mainBody.lineBreakMode = NSLineBreakMode.ByWordWrapping
return cell
} else {
return mainCell()
}
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return mainHeader.count
}
}
答案 1 :(得分:0)
只是更新Tim的错误处理功能:
VBA:
icons.js
答案 2 :(得分:-1)
Sub Tester()
MsgBox(不是IsError(Application.ExecuteExcel4Macro("' C:\ temp [temp.xlsm] Sheetxyz'!R1C1")))
End Sub