vba mysql 自动化错误_excel-vba – 错误-2147417848自动化错误调用的对象已与其客户端断开连接...

在从Excel 2007升级到2010后,用户遇到了VBA自动化错误,具体表现为错误号-2147417848,提示“调用的对象已与其客户端断开连接”。问题发生在尝试删除特定范围的行时。代码涉及清理多个工作表的内容,包括删除条件格式、清空单元格内容和删除列表对象的行。有人寻求帮助以确定错误原因并找到解决方案。
摘要由CSDN通过智能技术生成

我正在努力清理3张excel表中的一些表格.

我的代码在Excel 2007中运行良好,因为我切换到excel 2010我开始得到此运行时错误自动化错误调用的对象已与其客户端断开连接,错误号为-2147417848然后excel冻结.

在线上运行此功能2次后显示错误

Sheets("Risk Details").Range("A3" & ":BV" & (count + 1)).Delete Shift:=xlUp

任何人都可以帮助我找出为什么会发生这种情况以及如何解决它?

下面是该函数的完整代码

Function clearData(Optional refresh As Boolean) As Boolean

Application.ScreenUpdating = False

Sheets("Single Risk Register").Unprotect myPass

Sheets("Single Risk Register").Activate

Cells.FormatConditions.Delete

Sheets("Risk Details").Unprotect myPass

Sheets("Risks").Unprotect myPass

Dim currentrange As Range

Sheets("Risks").Activate

Set currentrange = Sheets("Risks").Range("RisksTable")

currentrange.ClearContents

Dim count As Integer

count = Sheets("Risks").ListObjects("RisksTable").ListRows.count

If count > 1 Then

Sheets("Risks").Range("A3" & ":C" & (count + 1)).Delete Shift:=xlUp

End If

Sheets("Risk Details").Activate

Set currentrange = Sheets("Risk Details").Range("RiskDetails")

currentrange.ClearContents

count = Sheets("Risk Details").ListObjects("RiskDetails").ListRows.count

If count > 1 Then

Sheets("Risk Details").Range("A3" & ":BV" & (count + 1)).Delete Shift:=xlUp

End If

Sheets("Single Risk Register").Activate

count = CInt(Range("ActionsCount"))

Range("ActionsCount") = 1

Dim tableLastRow As Integer

tableLastRow = getLastTableRow()

If (tableLastRow >= 48) Then

Sheets("Single Risk Register").Range("B48" & ":K" & tableLastRow).Delete Shift:=xlUp

End If

Range("ActionsTable[[Action Description]:[Action Commentary]]").Select

Application.CutCopyMode = False

Selection.ClearContents

Application.ScreenUpdating = False

Dim DataRange As Range

Dim o As Shape

Dim tC As Variant

Dim propertiesCount As Integer

Dim i As Integer

tC = Sheets("TableColumns").ListObjects("TableColumns").DataBodyRange

propertiesCount = GetTemplatePropertiesCount(templates(0)) - 1

ReDim properties(0 To propertiesCount - 1, 0 To 4)

If (properitesColl.Item(i + 1)(propertiesCount, 2) = templates(0)) Then

properties = properitesColl.Item(i + 1)

End If

For count = 0 To propertiesCount - 1

If ((properties(count, 4) <> "C25") And (properties(count, 4) <> "C26") And (properties(count, 4) <> "C27") And (properties(count, 4) <> "C28") And (properties(count, 4) <> "C38") And (properties(count, 4) <> "C39") And (properties(count, 4) <> "C40") And (properties(count, 4) <> "C41"))

Then

Sheets("Single Risk Register").Range(properties(count, 4)) = ""

End If

Next

Dim columnCount As Integer

columnCount = GetColumnCount()

count = 0

For i = 1 To columnCount

If tC(i, 4) <> "Action" Then

Set currentrange = Range(tC(i, 4))

Else

Set currentrange = Range("ActionsTable[" & tC(i, 1) & "]")

End If

If ((tC(i, 4) = "C25") Or (tC(i, 4) = "C26") Or (tC(i, 4) = "C27") Or (tC(i, 4) = "C28") Or (tC(i, 4) = "C38") Or (tC(i, 4) = "C39") Or (tC(i, 4) = "C40") Or (tC(i, 4) = "C41"))

Then

With currentrange.Interior

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

.Color = 15654866

.TintAndShade = 0

.PatternTintAndShade = 0

End With

Else

With currentrange.Interior

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

.ThemeColor = xlThemeColorAccent1

.TintAndShade = 0.799981688894314

.PatternTintAndShade = 0

End With

End If

Next

Sheets("Single Risk Register").Unprotect myPass

If (Range("C3").Value = "") Then

Range("ActionsTable[[Action Description]:[" & addTitle & "]]").Select

Selection.Locked = True

Rows("45:47").Select

Selection.EntireRow.Hidden = True

End If

Sheets("Single Risk Register").Range(Range("TitleCell")).Value = Range("OldTitle") + " (" + Range("Project_Title") + ")"

Sheets("Single Risk Register").Protect myPass, AllowFiltering:=True

Sheets("Risk Details").Protect myPass, AllowFiltering:=True

Sheets("Risks").Protect myPass, AllowFiltering:=True

doNotRun = False

Range("C3").Select

Application.ScreenUpdating = True

Exit Function

err:

Sheets("Risk Details").Protect myPass

Sheets("Risks").Protect myPass

MsgBox err.Description, vbCritical, "Error"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值