一、怎么查看excel的VBA代码
按住ALT+F11弹出VBA编辑器。x0dx0a只是要破解么?x0dx0a新建一个Excel工作簿,Alt+F11 打开VBA编辑器,新建一个模块 ,复制以下代码,注意如提示变量未定义,则把Option Explicit行删除即可,经测试已经通过.x0dx0a'移除VBA编码保护x0dx0aSub MoveProtect()x0dx0a Dim FileName As Stringx0dx0a FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "VBA破解")x0dx0a If FileName = CStr(False) Thenx0dx0a Exit Subx0dx0a Elsex0dx0a VBAPassword FileName, Falsex0dx0a End Ifx0dx0aEnd Subx0dx0a'设置VBA编码保护x0dx0aSub SetProtect()x0dx0a Dim FileName As Stringx0dx0a FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "VBA破解")x0dx0a If FileName = CStr(False) Thenx0dx0a Exit Subx0dx0a Elsex0dx0a VBAPassword FileName, Truex0dx0a End Ifx0dx0aEnd Subx0dx0aPrivate Function VBAPassword(FileName As String, Optional Protect As Boolean = False)x0dx0a If Dir(FileName) = "" Thenx0dx0a Exit Functionx0dx0a Elsex0dx0a FileCopy FileName, FileName & ".bak"x0dx0a End Ifx0dx0a Dim GetData As String * 5x0dx0a Open FileName For Binary As #1x0dx0a Dim CMGs As Longx0dx0a Dim DPBo As Longx0dx0a For i = 1 To LOF(1)x0dx0a Get #1, i, GetDatax0dx0a If GetData = "CMG=""" Then CMGs = ix0dx0a If GetData = "[Host" Then DPBo = i - 2: Exit Forx0dx0a Nextx0dx0a If CMGs = 0 Thenx0dx0a MsgBox "请先对VBA编码设置一个保护密码...", 32, "提示"x0dx0a Exit Functionx0dx0a End Ifx0dx0a If Protect = False Thenx0dx0a Dim St As String * 2x0dx0a Dim s20 As String * 1x0dx0a '取得一个0D0A十六进制字串x0dx0a Get #1, CMGs - 2, Stx0dx0a '取得一个20十六制字串x0dx0a Get #1, DPBo + 16, s20x0dx0a '替换加密部份机码x0dx0a For i = CMGs To DPBo Step 2x0dx0a Put #1, i, Stx0dx0a Nextx0dx0a '加入不配对符号x0dx0a If (DPBo - CMGs) Mod 2 <> 0 Thenx0dx0a Put #1, DPBo + 1, s20x0dx0a End Ifx0dx0a MsgBox "文件解密成功......", 32, "提示"x0dx0a Elsex0dx0a Dim MMs As String * 5x0dx0a MMs = "DPB="""x0dx0a Put #1, CMGs, MMsx0dx0a MsgBox "对文件特殊加密成功......", 32, "提示"x0dx0a End Ifx0dx0a Close #1x0dx0aEnd Function
二、excel中这段代码怎么看
复制下面的到宏里面去再看
'我给你+了批注了 可能不是很好理解你要慢慢看了
'估计你的H J 列应该是 借方 贷方 数据
' B 列式摘要 C 是科目啥的
'解释的里面sumproducT函数要结合你的表布局来看的 总之不难 结合你的表来看 基本的IF判断 不难主要的是Target.column/Row就是当前列 行的意思
Private Sub Worksheet_Change(ByVal Target As Range) 'sheet 变化事件
On Error Resume Next
If Target.Row < 5 Then Exit Sub '活动单元格的行数小于5 就退出
If Target.Column <> 7 Then Exit Sub '活动单元格的列数不等于7 就退出
If Target.Value = "本月合计" Then '活动单元格的值等于 本月合计 就执行下面代码
m = Target.Row - 1 '声明m 定义m等于当前行数 减去1
i = Range("C" & m + 1).End(xlUp).Row '声明i 定义i等于 C(M+1)单元格 往上第一个有数值的行数
Range("H" & m + 1) = Evaluate("SUMPRODUCT(($B$6:$B" & i & "=$B" & i & ")*H$6:H" & i & ")") '单元格H(M+1)等于SUMPRODUCT 的一个计算SUMPRODUCT(($B$6:$B" & i & "=$B" & i & ")*H$6:H" & i & ")")这个你把那个I 带进去就看出来了SUMPRODUCT 看不明白自己搜索了啊
Range("J" & m + 1) = Evaluate("SUMPRODUCT(($B$6:$B" & i & "=$B" & i & ")*J$6:J" & i & ")") '一样是 一个SUMPRODUCT的计算
ElseIf Target.Value = "本年累计" Then '若是本年累计
n = Target.Row - 2 '那N= 当前行号减2
Range("H" & n + 2) = Evaluate("SUMPRODUCT(($B$6:$B" & n & ">0)*H$6:H" & n & ")") '单元格h(n+2)= sumproduct 的一个计算
Range("J" & n + 2) = Evaluate("SUMPRODUCT(($B$6:$B" & n & ">0)*J$6:J" & n & ")") '和上面一样是一个计算
End If
End Sub
三、在wps中怎么在excel中查看代码
首先假设你要问的问题是“如何在WPS的电子表格程序中看VBA编写的代码。”
那么步骤如下:
1、由于WPS默认不带有VBA编程环境,你需要在网上下载“VBA for WPS”这款程序,下载后安装压缩包内的vba6chs.msi文件。这样WPS电子表格就具备了VBA编程环境。
2、打开WPS电子表格程序,点击开发工具菜单,点击VB编辑器,就可以看到当前电子文档的代码了。
3、亲测WPS2016个人版有效。