Foxtable(狐表)用户栏目专家坐堂 → Excel 返回自定义公式字符串


  共有2449人关注过本帖树形打印复制链接

主题:Excel 返回自定义公式字符串

帅哥哟,离线,有人找我吗?
nxhylczh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
Excel 返回自定义公式字符串  发帖心情 Post By:2019/4/11 15:09:00 [只看该作者]

单元格值:   =年初数("1001","","","")+年初数("1003","","","")+年初数("1003","","","")
读入的公式变为  ='余额'(1001,,)+'余额'(1002,,)+'余额'(1005,,)
怎么操作还是要返回 =年初数("1001","","","")+年初数("1003","","","")+年初数("1003","","","")
这样就可以用公式计算器了

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/11 15:54:00 [只看该作者]

 

没看懂你的问题是什么。具体说明需要做到的效果。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
nxhylczh
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2019/4/11 16:09:00 [只看该作者]

计算资产负债表


图片点击可在新窗口打开查看此主题相关图片如下:49`%`r49$pm@7@r3i%y)0pg.png
图片点击可在新窗口打开查看

打开这个Excel表后,我的想法是遍历工作表
Dim Book As New XLS.Book(vars("ReportFileName"))
Dim Sheet1 As XLS.Sheet = Book.Sheets(0)

For RowIndex As Integer=1 To sheet1.Rows.Count-1
    For ColIndex As Integer =0 To sheet1.Cols.Count-1
        If sheet1(Rowindex,ColIndex).Formula<> "" Then
            msgbox(sheet1(Rowindex,ColIndex).Formula)         '如果是公式
            sheet1(Rowindex,ColIndex).Value=Computer2(sheet1(Rowindex,ColIndex).Formula)  '调用公式计算器进行计算
    '希望传的参数为 =年初数("1001","","","")+年初数("1003","","","")+年初数("1003","","","")
     '但是现在传入的参数是 '年初数'(1001,,,)+'年初数'(1003,,,)+'年初数'(1003,,,)  Excel把我需要的引号去掉了
        End If
    Next
Next
自定义函数的格式 Public Function 年初数(ByVal kmbm As String, Optional ByVal iYear As String, Optional subType As String, Optional SubItem As String) As String


 回到顶部
帅哥哟,离线,有人找我吗?
nxhylczh
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2019/4/11 16:14:00 [只看该作者]

图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
nxhylczh
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2019/4/11 16:15:00 [只看该作者]

图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/11 16:37:00 [只看该作者]

试试用vba处理

 

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\1234.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1) '指定工作表

For RowIndex As Integer=1 To ws.usedrange.rows.Count-1
    For ColIndex As Integer =1 To ws.usedrange.columns.Count-1
        If ws.cells(Rowindex,ColIndex).Formula.startswith("=") Then
            msgbox(ws.cells(Rowindex,ColIndex).Formula)         '如果是公式
            'sheet1(Rowindex,ColIndex).Value=Computer2(sheet1(Rowindex,ColIndex).Formula)  '调用公式计算器进行计算
            '希望传的参数为 =年初数("1001","","","")+年初数("1003","","","")+年初数("1003","","","")
            '但是现在传入的参数是 '年初数'(1001,,,)+'年初数'(1003,,,)+'年初数'(1003,,,)  Excel把我需要的引号去掉了
        End If
    Next
Next

 

app.quit


 回到顶部
帅哥哟,离线,有人找我吗?
nxhylczh
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2019/4/11 16:56:00 [只看该作者]

鼠标一直转圈  
窗口还不能关闭了

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/11 17:29:00 [只看该作者]

 

是不是你excel的文件的行数列数太大?

 

vba读取是比较慢的。excel文件发上来测试。


 回到顶部
帅哥哟,离线,有人找我吗?
nxhylczh
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2019/4/11 17:51:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:资产负债表.xls


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/11 17:52:00 [只看该作者]

测试上面代码,瞬间完成,没有问题。

 回到顶部
总数 15 1 2 下一页