Excel(offcie 365)中使用quicker运行VBA代码出错

使用问题 · 990 次浏览
RushKitty 创建于 2023-06-02 11:38

1.这些vba代码以前都运行良好,今天运行就频繁出现the RPC server is unavailable 的错误(0x800706BA),然后就是excel崩溃重启。有时会出现“超时未获取低权限”,这是我的网络问题导致的吗?

2.另外,我发现哪怕一些不负责的vba代码也似乎很容易导致excel崩溃。我用GPT对vba代码优化过后基本解决了,不知道这是vba自身的问题还是使用quicker运行vba导致的。

 

excel中“启用vba宏”和“信任对vba工程对象模型的访问”都打开了。


臭冬瓜 2023-06-02 12:14 :

请问你是怎样用GPT优化代码的?因为我的代码一般都比较长,而GPT对token又有限制,根本不会给我优化代码的结果,因为肯定会超过token限制:( GPT计算token长度也包括提问的内容。

臭冬瓜 最后更新于 2023-06-02 12:14
RushKitty 回复 臭冬瓜 2023-06-02 12:23 :

1.我这里的vba代码只处理excel中的一个字段,所以代码很短

2.我用的是官网的GPT4模型优化代码,输入能力比3.5更大。如果代码太长,我会告诉gpt4先不用回答我,当我把代码全部发给你后再开始分析,然后就是一部分一部分的喂。目前的限制只是每3小时25次。

RushKitty 回复 臭冬瓜 2023-06-02 12:25 :

或者直接用github copilot 或者其他代码检查工具。应该现在都配有ai了吧。。。。。

臭冬瓜 回复 RushKitty 2023-06-02 12:27 :

这个能给一个 github copilot 或者 其他代码检查工具 链接吗(需要科学上网不?),谢谢

臭冬瓜 最后更新于 2023-06-02 12:28
CL 回复 臭冬瓜 2023-06-02 12:32 :

github copilot 那个好像是付费的,https://github.com/features/copilot ,有vscode插件,可能也需要科学一下。

回复内容
CL 2023-06-02 11:46
#1

这个错看起来不是quicker里报的。有可能和VBA代码有关,和网络应该没有关系。

试试重启一下电脑。 

lzh04321 2023-06-02 13:30
#2

我也是出现这个问题,我担心代码复杂,就用了一个非常简单的代码,同样出现问题。word vba 是正常的,但是excel就不行了。出现the RPC server is unavailable 的错误(0x800706BA)的错误提示。我的也是office365

lzh04321 2023-06-02 13:31
#3


lzh04321 2023-06-02 13:31
#4


lzh04321 2023-06-02 13:32
#5

希望管理能看到,早点解决

CL 回复 lzh04321 2023-06-02 13:38 :

动作分享一下我这里试试。 这块最近没有做过修改的。

lzh04321 回复 lzh04321 2023-06-03 15:27 :

我建立动作后,绑定Excel窗口,就出现我说的问题。但是我在excel界面上,建立动作。问题暂时解决了,谢谢,如果再出现问题,再请教。。。

CL 回复 lzh04321 2023-06-03 16:58 :

绑定Excel窗口指的是什么?

lzh04321 回复 CL 2023-06-04 11:12 :

可能我表达不清楚,我是在桌面建立的excel宏动作,导致错误。我看了下,没有绑定这个选项,sorry

lzh04321 回复 CL 2023-06-04 15:02 :

还是出现问题,我想分享给你看一下,是不是要先分享到动作库?还不知道怎么分享至这里

lzh04321 回复 CL 2023-06-04 15:11 :

https://getquicker.net/Sharedaction?code=4d80f3df-ea37-42e5-fde4-08db64cacbdf  请看一下这个动作,今天又出现错误

CL 回复 lzh04321 2023-06-04 21:47 :

测试这个动作没出问题。 

试试排查确认一下:

1) windows任务管理器中只有一个Excel进程。

2)excel文档是在资源管理器中双击打开的。

3) Windows的UAC设置为默认值。

lzh04321 2023-06-04 15:20
#6

Sub beautifyTable()
    ' 声明变量
    Dim selectedRange As Range
    
    ' 获取选中的表格区域
    Set selectedRange = Selection
    
    ' 修改单元格字体样式、大小和颜色
    selectedRange.Font.Name = "微软雅黑"
    selectedRange.Font.Size = 12
    selectedRange.Font.ColorIndex = 1 ' 黑色
    
    ' 修改单元格背景颜色
    selectedRange.Interior.Color = RGB(230, 230, 230) ' 浅灰色
    
    ' 添加边框线
    With selectedRange.Borders
        .LineStyle = xlContinuous ' 连续实线
        .Weight = xlThin ' 细线条
        .ColorIndex = 1 ' 黑色边框
    End With
    
    ' 自适应列宽
    selectedRange.EntireColumn.AutoFit
    
End Sub

这是一个简单的美化excel的vba代码,我将它设为动作,出现错误,大佬些请教一下,哪里出问题了

白起1996 回复 lzh04321 2023-06-04 19:59 :

运行了你的代码,没有报错

lzh04321 回复 白起1996 2023-06-06 11:29 :

我录了屏,您请看一下

lzh04321 2023-06-06 08:14
#7

好的,我重新安装一个office试试,谢谢

lzh04321 2023-06-06 11:24
#8

重新装了office365,还是出现问题,第一次无法正常运行,必须重新点出动作编辑确定后才能正常运行。我录了屏,


CL 回复 lzh04321 2023-06-06 11:46 :

试试排查确认一下:

1) windows任务管理器中只有一个Excel进程。

2)excel文档是在资源管理器中双击打开的。

3) Windows的UAC设置为默认值。

lzh04321 2023-06-06 12:00
#9

@回复CL:

重启电脑就录屏,没有多余的excel进程。


CL 回复 lzh04321 2023-06-06 12:39 :

不要编辑,而是直接等一会儿试试,可能excel还没准备好。 编辑这个操作理论上不会影响动作的执行。

lzh04321 回复 CL 2023-06-07 11:03 :

等了半小时,问题依然

CL 回复 lzh04321 2023-06-07 11:09 :

如果同时安装了WPS和Excel,可能也会出现奇怪的问题。WPS有的版本会注册Excel的对象标识。

CL 最后更新于 2023-06-07 11:10
Shennn 2023-06-16 21:12
#10

我也遇到同样的问题,用的是Office 365,没有安装WPS。

以下是让CHATGPT创建的一个简单的求A列和B列之和,将结果放入C列的VBA代码。运行后,能够顺利出结果,但是Excel立马卡死崩溃,然后Quicker弹出报错:命令返回失败,错误:RPC服务器不可用。(异常来自HRESULT:0x800706BA)(--执行VBA脚本:Office软件辅助--)


以下是代码:

Sub SumColumns()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") 'Replace "Sheet1" with the name of your sheet
    
    Dim LastRow As Long
    LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    If ws.Cells(ws.Rows.Count, "B").End(xlUp).Row > LastRow Then
        LastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
    End If

    Dim i As Long
    For i = 1 To LastRow
        ws.Cells(i, "C").Value = ws.Cells(i, "A").Value + ws.Cells(i, "B").Value
    Next i

End Sub

Shennn 最后更新于 2023-06-16 21:13
CL 回复 Shennn 2023-06-16 21:36 :

会不会LastRow得到的结果太大了,导致一直在循环?

本地测试这个代码是可以正常运行的。


CL 最后更新于 2023-06-17 15:25
臭冬瓜 回复 CL 2023-06-17 15:02 :

不会,CL总算不了解EXCEL^_^,End(xlUp) 方法是获取A列最后一行有数据的行号,而不是A列所有行

臭冬瓜 最后更新于 2023-06-17 15:03
RushKitty 2023-06-20 12:08
#11

我觉得这个问题似乎,也许,可能和内存有关,因为我只要把桌面任务栏的程序关掉一部分,就能大大提高vba运行成功的概率。

回复主贴