|
本帖最后由 chenlin1106 于 2014-6-10 09:14 编辑
我的Excel表格中有很多列,现在全部都用公式做的,因为数字太多,行和列都有超多数据,所以导致我的表格现在有50多M,打开时很慢,而且以后数据会越来越多
现在有的插入一个模块,用一个表单控件,但是50多个公式就相当于有50多个表单控件
请问有没有一个方法能把这些VBA数据合成,只有一个表单控件,比如命名为计算,那全部都用不同的公式计算出来结果呢?
我现在把表格简化了上传一下,实际表格有50多M,现在想要在第二个表中能插入一个VBA控件,能一次性完成后面所有的公式运算
当然后面每个不同的公式,我会分别加进VBA表格中单独运算
我现在上传的表中从I列到Q列全部是用公式做的,现在麻烦全做成VBA统一实现.
现在上传的麻烦各位先做一个VBA控件,只把现在这几个公式能解决就好.
后面的公式,每个单元格里都能显示,麻烦帮我看下~~谢谢`~
如果只要数值,不要公式,可改为: - Sub 引用()
- Worksheets("3D公式预测").Activate
- Dim i As Long, j As Long
- Dim Rng As Range
- Set Rng = Range("A1").CurrentRegion
- Set Rng = Worksheets("3D公式预测").Range("A1").CurrentRegion
- i = Rng.Rows.Count
- j = Rng.Columns.Count
- Worksheets("3D公式预测").Range("i3:q" & j).Clear
- Range("i3").FormulaR1C1 = "=IF(RC3="""","""",SUM(RC3:RC5))"
- Range("J3").FormulaR1C1 = "=IF(RC3="""","""",MAX(RC3:RC5)-MIN(RC3:RC5))"
- Range("K3").FormulaR1C1 = "=RIGHT(RC9,1)"
- Range("L3").FormulaR1C1 = "=CONCATENATE(RC3,RC4,RC5)"
- Range("M3").FormulaR1C1 = "=IF(RC6="""","""",MAX(RC6:RC8)-MIN(RC6:RC8))"
- Range("N3").FormulaR1C1 = _
- "=IF(OR(RC4={1;6}),34,IF(OR(RC4={2;7}),78,IF(OR(RC4={3;8}),12,IF(OR(RC4={4;9}),56,IF(OR(RC4={0;5}),12,IF(RC4="""",""""))))))"
- Range("O3").FormulaR1C1 = _
- "=IF(RC3="""","""",COUNT(FIND(RC3:RC5,MID(RC14,ROW(R1C1:R2C1),1))))"
- Range("P3").FormulaR1C1 = "=IF(RC4="""","""",RIGHT(RC4+2,1))"
- Range("Q3").FormulaR1C1 = _
- "=IF(RC3="""","""",IF(COUNTIF(RC3:RC5,RC16),""×"",""对""))"
- For k = 6 To j
- Cells(3, k).AutoFill _
- Destination:=Range(Cells(3, k), Cells(i, k))
- Next
- Range("I3:Q" & i).Select
- Selection.Copy
- Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
- :=False, Transpose:=False
- Application.CutCopyMode = False
- ActiveWorkbook.Save
- End Sub
复制代码
|
|