利用vba将数据按月筛选,并存到单独的sheet中,那么在excel的内置公式如何引用中这些新建的sheet?

利用vba将sheet1中的数据按月筛选,并存到单独的sheet中(该段代码已经调试通过)。同时我也想求每月的数据中ET_PM和ET_Har之间的斜率(第13列和第14列... 利用vba将sheet1中的数据按月筛选,并存到单独的sheet中(该段代码已经调试通过)。同时我也想求每月的数据中ET_PM和ET_Har之间的斜率(第13列和第14列,每个sheet都一样),并将值保存在sheet1中,那么在excel的内置公式如何引用中这些新建的sheet?我在代码中用了循环语句,将新建的sheet对象设置为sht,但在公式中却不知道咋引用了,每次代码执行到计算斜率这段时就出错,弹出一个选择文件的对话框,并提示:”更新值:sht“(见图),请问这是咋回事呢?到底应该怎么正确引用?
拜求各位大神指点,谢谢了!

Sub copy_data()
Dim month As Integer
Dim fori As String
For month = 1 To 12
Dim sht As Worksheet
Dim k As Integer
fori = Str(month) & "月"
Worksheets.Add(after:=Worksheets("sheet1")).Name = fori
Set sht = ThisWorkbook.Worksheets(fori)
With Sheet1
.Range(Cells(, 2), Cells(, 17)).AutoFilter field:=4, Criteria1:=month
If .FilterMode Then
.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Copy sht.Cells(1, 2)
End If

For k = 0 To 3
.Cells(3 + month, 19 + 7 * k).FormulaR1C1 = "=INTERCEPT(sht!C13,sht!C" & 14 + k & ")"
Next

End With
Next
End Sub
展开
 我来答
可爱就是笑
2015-11-26 · TA获得超过1599个赞
知道大有可为答主
回答量:4011
采纳率:70%
帮助的人:617万
展开全部
QZ你好
既然SHT是你在代码中定义的,就应该单独出来&,不能含在双引号里
而且,SHT是一个对象,工作表函数里只需要是一个名称就可以
更多追问追答
追问
我明白sht是一个对象,但问题是我不知道怎么改啊,能不能麻烦帮我直接修改一下代码。我也尝试过使用以下的两种方式,但一运行就直接“运行时错误1004,应用程序定义或对象定义错误。”
"=INTERCEPT(Worksheets(sht)!C13,sht!C" & 14 + k & ")"
"=INTERCEPT(sht&!C13,sht!C" & 14 + k & ")"
追答
For k = 0 To 3
.Cells(3 + month, 19 + 7 * k).FormulaR1C1 = "=INTERCEPT(sht!C13,sht!C" & 14 + k & ")"
Next
---------------------
这里
SM=sht.name
变成
----------------
For k = 0 To 3
.Cells(3 + month, 19 + 7 * k).FormulaR1C1 = "=INTERCEPT(" & SM & "!C13," & SM & "!C" & 14 + k & ")"
Next
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式