|
本帖最后由 huyvbo 于 2015-11-28 19:44 编辑
利用vba将sheet1中的数据按月筛选,并存到单独的sheet中(该段代码已经调试通过)。同时我也想求每月的数据中ET_PM和ET_Har之间的斜率(第13列和第14列,每个sheet都一样),并将值保存在sheet1中,那么在excel的内置公式如何引用中这些新建的sheet?我在代码中用了循环语句,将新建的sheet对象设置为sht,但在公式中却不知道咋引用了,每次代码执行到计算斜率这段时就出错,弹出一个选择文件的对话框,并提示:”更新值:sht“(见图)。我仔细检查了一下,发现所有的sheet名称前都有一个空格,即“5月”在sheet中显示的是“ 5月”。而公式在引用的时候不知道为何却删除了那个空格,导致找不到sheet了。请问大家知道这是怎么回事吗?该怎么解决这个问题呢?
- 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)
- .Cells(3 + month, 19).FormulaR1C1 = "=INTERCEPT(" & fori & "!C13," & fori & "!C14)"
- End If
- End With
- Next
- Sheet1.AutoFilterMode = False
- End Sub
出错的窗口
弹出对话框,找不到对应的sheet
生成的sheet名称前有空格
通过代码生成的月份前都有空格
引用的字段中空格丢失
但公式引用的时候空格丢失,导致找不到sheet
示例数据.rar
(41.47 KB, 下载次数: 6)
|
|