当前位置:首页教育技巧excel技巧excel表格单元

怎么把excel表格公式转换成代码

减小字体 增大字体 2025-01-25 09:05:33


1.EXCEL函数数组公式转VBA代码

公式一般比vba快,因为vba是解释执行的。

你公式慢的因为是有些写法不合适,建议:

1.增加辅助列,第一列写c1=d1,,,C:C=C1,,,实际上应该怎么写,你调整下

2.不要整列的用数组公式,你这个C:C=C1,有效数有多长就写多长,适当多一点没关系,

但整列,当然就慢的厉害了,改为C1:C1000=C1会极大的改改善公式速度。

C:C=C1在数组公式中,大约是从C1。C65536单元格,逐一跟C:C比较,在2003下是65536*65536次运算,在07下去运算一次,1048576*1048576次计算比较,10分钟才算完,不慢了,呵呵

完善下公式就OK,不用写什么VBA

2.Excel中将文字转为代码要输入哪个公式

B1公式下拉:

=IF(A1="","",CODE(A1))

如果想把编码转回对应的字符,公式:

=IF(A1="","",CHAR(A1))

3.如何把Excel 表格中乱码变成代码

方法一:转换为较早的版本

如果由于启动故障而没有保存Excel工作簿,则最后保存的版本可能不会被损坏。当然,该版本不包括最后一次保存后对文档所作的更改。

关闭打开的工作簿,当系统询问是否保存更改时,单击“否”。在“文件”菜单中,单击“打开”命令,双击该工作簿文件即可。

方法二:打开并修复工作簿

如果Excel文件根本不能够使用常规方法打开,那么可以尝试Excel 2003中的“打开并修复”功能,该功能可以检查并修复Excel工作簿中的错误。

在“文件”菜单中,单击“打开”命令。通过“查找范围”框,定位并打开包含受损文档的文件夹,选择要恢复的文件。单击“打开”按钮旁边的箭头,然后单击“打开并修复”即可。

4.Excel中如何自动转换编码

Q我吧,用宏代码即VBA编程 QQ:394901158 是想实现这个功能吗,你只要在1、2、3、4列中输入相关数据,H列就会自动生成编号,注:如果1、2、4列中没有输过的类别,系统会提示你输入该类别的编码,如:之前没有输过“固定资产”,则系统会提示你输入编号,你可以在提示框中输入“GD”,以后再输入固定资产时就不会再提示了,其他几个分类别也是一样,只要第一次输入就可以了。

我的表格比你的多一个标识列,这个列不可以删除,你可以把它隐藏起来。 以下是代码: Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Worksheet, c As Range, co As Integer, ro As Integer, intcount As Integer If Target.Columns.Count > 1 Or Target.Rows.Count > 1 Then Exit Sub Set r = Sheets("库") co = Target.Column ro = Target.Row If Target.Column = 1 Or Target.Column = 2 Or Target.Column = 4 Then Set c = r.Range("A1:A" & r.UsedRange.Rows.Count).Find(what:=Target) If c Is Nothing Then loop1: strtemp = InputBox("数据库没有该分类,请输入该分类的编码!!", "分类编码") ro = r.Range("A65536").End(xlUp).Row + 1 If strtemp = "" Then GoTo loop1 r.Cells(ro, 1) = Target r.Cells(ro, 2) = strtemp End If With Target If Cells(.Row, 1) <> "" And Cells(.Row, 2) <> "" And Cells(.Row, 4) <> "" Then strtemp = findstr(Cells(.Row, 1)) & "-" & findstr(Cells(.Row, 2)) & "-" & findstr(Cells(.Row, 4)) Cells(.Row, 16) = strtemp With ActiveSheet.Range("P2:P" & ActiveSheet.UsedRange.Rows.Count) Set c = .Find(what:=strtemp, LookIn:=xlValues) intcount = 0 If Not c Is Nothing Then firstrow = c.Row Else intcount = 1 GoTo loop2 End If Do intcount = intcount + 1 Set c = .FindNext(c) ro = c.Row Loop Until Not c Is Nothing And c.Row = firstrow loop2: Cells(Target.Row, 8) = strtemp & "-" & Format(Cells(Target.Row, 3), "yyyymmdd") & "-" & Format(intcount, "000") End With End If End With End If End Sub Function findstr(strtemp As String) As String Dim r As Worksheet, c As Range Set r = Sheets("库") Set c = r.Range("A1:A" & r.UsedRange.Rows.Count).Find(what:=strtemp) If Not c Is Nothing Then findstr = r.Cells(c.Row, c.Column + 1) End If End Function。

5.excel公式转VBA代码

<p>;你的公式的逻辑关系有点问题</p> <p>;你看下是不是这样的意思</p> Sub test()

Dim i&, n, n1

For i = 1 To 5

If Cells(i, "D") * Pi / 180 >= 0 Then

If Cos(Cells(i, "B") * Pi / 180 - Cells(i, "I") * Pi / 180) < 0 Then

n = True

Else

n = False

End If

If Cos(Cells(i, "B") * Pi / 180 - Cells(i, "I") * Pi / 180) > 0 Then

n1 = True

Else

n1 = False

End If

If n1 = True And n = True Then k = "-1" Else k = "1"

Else

k = "1"

End If

Cells(i, "A") = k

Next i

End Sub

评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

【免责声明】本站信息来自网友投稿及网络整理,内容仅供参考,如果有错误请反馈给我们及时更正,对文中内容的真实性和完整性本站不提供任何保证,不承但任何责任。
版权所有:学窍知识网 Copyright © 2011-2025 www.at317.com All Rights Reserved .