Foxtable(狐表)用户栏目专家坐堂 → Excel 设置公式


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

主题:Excel 设置公式

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
Excel 设置公式  发帖心情 Post By:2019/10/30 9:41:00 [显示全部帖子]

老师,设置公式,跨工作簿工作表的,有这样的一个问题:
表格公式是这样的:

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20191030094032.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20191030094052.png
图片点击可在新窗口打开查看



图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20191030093623.png
图片点击可在新窗口打开查看
这是正常的,然后我加上那句替代的代码,就不对了。

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/10/30 9:43:00 [显示全部帖子]

打开会提示:

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20191030093936.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/10/30 9:56:00 [显示全部帖子]

老师,这句:
Sheet(0,0).Formula = Sheet(0,0).Formula.replace("sheet1","sheet2")

我要吧aa工作簿引用的bb工作簿的sheet1 改成 shee2 ,用替代的方式
[此贴子已经被作者于2019/10/30 9:56:22编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/10/30 10:28:00 [显示全部帖子]

老师,这个就一直卡在替换这里

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20191030102758.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/10/30 10:37:00 [显示全部帖子]

Wb.WorkSheets("天津").range("C4").Formula = Wb.WorkSheets("天津").range("C4").Formula.replace(day1,day2)
卡在这句,动不了
后面这些就没有弹出来了
Output.Show(Wb.WorkSheets("天津").range("C4").Value )
Output.Show(Wb.WorkSheets("天津").range("C4").Formula )

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/10/30 11:15:00 [显示全部帖子]

这样就可以了。谢谢蓝老师!!!

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/10/30 11:27:00 [显示全部帖子]

老师,那我要区域,就是多单元格的,要怎么遍历处理呢?
我现在这样写:
Dim App As New MSExcel.Application
Dim Wb As MSExcel.Workbook = App.WorkBooks.Open(lj1)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets("沈阳")
Dim Rg As MSExcel.Range
rg = Ws.Range("C4:C13")
Dim s As String = RG.Formula
Output.Show(RG.Value )
Output.Show(RG.Formula )
s = s.replace(day1,day2)
RG.Formula = s
Output.Show(RG.Value )
Output.Show(RG.Formula )
Wb.SaveAs(lj2)
Wb.close
App.Quit


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20191030112242.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/10/30 11:30:00 [显示全部帖子]





  • 通过Cells集合引用

    例如Cells(i,j)就表示第i行、第j列处的单元格,i、j都是整数。
    如果没有指定具体的行号和列号,那么就代表引用整个工作表。如,Rg = Ws.Cells。
    如果需要 按位置循环引用单元格区域的各个单元格,那么使用Cells属性是最方便的,例如下面的代码就是将第5-10行、6-20列的所有单元格内容替换为"abc":

    Dim App As New MSExcel.Application
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\Report.xls")
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
    Dim Rg As MSExcel.Range
    For i As Integer = 5 To 10
        For j As Integer = 6 To 20
            Rg = Ws.Cells(i,j)
            Rg.Value = "abc"
        Next
    Next
    App.Visible = True
老师,发现可以用这个。
有没有其他的方式呢。

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/10/30 11:33:00 [显示全部帖子]

就是想整个工作表都替换掉,不需要去指定单元格
[此贴子已经被作者于2019/10/30 11:32:55编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2019/10/30 15:05:00 [显示全部帖子]

老师,我一个工作簿有33个工作表,要替换公式里面的 26 变成 27 
用EXCEL本身的查找替换,挺快的,用我们这个逐个遍历,有点慢
老师,不知道有没有更好的办法。。。
Dim Wb As MSExcel.Workbook = App.WorkBooks.Open(lj1)
Dim Ws As MSExcel.WorkSheet
ws = Wb.WorkSheets(n)
Dim st As Date = Date.Now
output.show(Ws.Name)
Dim Rg As MSExcel.Range
For i As Integer = 1 To 167
    For j As Integer = 1 To 15
        Rg = Ws.Cells(i,j)
        Dim gs As String = rg.Formula
output.show(Ws.Name)
        If gs.Contains(day1) Then
            Dim s As String = RG.Formula
            s = s.replace(day1,day2)
            RG.Formula = s
        End If
    Next
Next

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20191030150206.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2019/10/30 15:14:15编辑过]

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