这段代码已经在网上漂浮了很多年 - 它显然能够提供密码来解密你不知道密码的excel电子表格.
http://www.theofficeexperts.com/VBASamples/Excel02.htm
我对它是如何工作感兴趣,但我似乎无法解决这个问题.我假设它是在某个值下加密的,可以通过多种方式获得(网上的一些地方说它会给你原始密码或另一个可以工作的密码)有点像公钥 - 你可以有100个公钥,所有公钥都可以使用一个私钥.
对我来说,似乎它正在创建整数变量并用特定数字填充它们,然后将该数字转换为相关字符.这些总是不一样吗?如果是这样,Excel保护是否有"主密码"?
谢谢大家!
编辑:我注意到我发布的示例代码中的For n = 32 To 126.使用ASCII表进行交叉引用,该表似乎是从空间到波浪号的所有字符.这是某种字典攻击我不理解语法吗?
我查看了这个主题并找到了一些帮助,但这些建议似乎没有起作用.
这是我在VBA中用来完成工作的代码,以及我发现的其他可以帮助我抑制提示的子代码.
此代码位于TheWorkbook文件中,而不是模块.
我错过了什么吗?
码
Sub fixfile()
Const strFileName = "W:\Webshare\Documents Acquired in 2017\Jim Excel\snr-room-schedule.csv"
Dim wbkS As Workbook
Dim wshS As Worksheet
Dim wshT As Worksheet
Set wshT = Worksheets.Add(After:=Worksheets(Worksheets.Count))
Set wbkS = Workbooks.Open(Filename:=strFileName)
Set wshS = wbkS.Worksheets(1)
wshS.UsedRange.Copy Destination:=wshT.Range("A1")
wbkS.Close SaveChanges:=False
'This is the area of work that we doing to the data
'Through here
Application.DisplayAlerts = False 'IT WORKS TO DISABLE ALERT PROMPT
ActiveWorkbook.SaveAs Filename:= _
"W:\Webshare\Documents Acquired in 2017\Jim Excel\snr-room-schedule.csv", …Run Code Online (Sandbox Code Playgroud) 我有一个Excel模板,在VBA代码中具有硬编码的Ms Access MDB路径,用于连接到Access表并保存,检索数据.
我将MS Access数据库迁移到具有Excel模板用户的集成身份验证的SQL Server.
我的问题是,存储SQL Server数据库连接字符串并在Excel 2007 VBA中检索以保存和检索数据的建议方式/最佳实践是什么?
过去,我做了以下工作.
使用具有连接字符串的注册表项设置.然后在VBA中,编写一个读取注册表项并返回连接字符串的函数.
在Excel模板中有一个"设置"隐藏工作表,其中包含连接字符串的命名单元格.通过访问该命名范围来读取VBA中的连接字符串.
使用与Excel模板一起使用的.INI txt文件.(这不是理想的,我想避免这种情况,因为它构建了对该外部文件的依赖)
我不喜欢#1,因为我想尽可能避免写入/读取注册表.#2感觉还不错,以为我不确定是否有更好的"清洁"方式来做到这一点.
有什么想法吗?
我无法在此处获取此代码以获取单元格内容并将其存储为字符串.我得到一个双倍:
54.6666666667而不是N03:DM:(示例单元格内容).
如果我使用Cstr(Sheet1.Cells(i, 5).Value)我仍然得到相同的结果.
任何帮助,将不胜感激.
Option Explicit
Private Sub GetAddress()
Dim varAdd As String
Dim i As Integer
For i = 2 To 327
If varTag = Sheet1.Cells(i, 2).Value Then
varAdd = Sheet1.Cells(i, 5).Value
varAdd = Left(varAdd, 7)
Sheet3.Cells(incR, 2).Value = varAdd
Exit For
End If
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
工作表截图 
更新:问题已解决我的 一位同事正在更改单元格Workbook_BeforeSave()而不禁用事件,因此触发Worksheet_Change().是的,愚蠢,但至少这是我们的错,而不是Excel
我注意到每当我在Excel中按Ctrl + S时,都会Worksheet_Change()被触发Workbook_BeforeSave().是否有可能使用VBA代码来抑制此行为,但不会压制所有事件(即没有Application.EnableEvents = false)?
无论我在做什么,都会发生这种情况.我读过有关ComboBoxes有类似问题的人,但我没有编辑ComboBoxes,但Worksheet_Change()在保存之前总会激活.
有任何想法吗?我只是试图弄清楚如何在Worksheet_Change()保存文档时绕过一些代码,因为该代码只应在用户实际更改内容时执行,而不是在保存工作簿时执行.储蓄绝不会改变......
我正在尝试向userform动态添加按钮,但userform只是空白.我尽可能地简化了代码的本质,以便进行错误检查(不是它对我有帮助)
Sub addLabel()
UserForm2.Show
Dim theLabel As Label
Dim labelCounter As Integer
For labelCounter = 1 To 3
Set Label = UserForm2.Controls.Add("Forms.Label.1", "Test" & labelCounter, True)
With theLabel
.Caption = "Test" & labelCounter
.Left = 10
.Width = 50
.Top = 10
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
有没有办法检查按钮是否已添加但是不可见?或者为什么他们没有被添加.任何帮助非常感谢.
我想问一下重命名excel表,我想用新名称重命名表:旧名+ _v1.
因此,如果我当前的工作表名称是test,那么我想要新名称test_v1.
我只知道重命名excel表的标准vba,它是由表单内容重命名excel表.
Sub Test()
Dim WS As Worksheet
For Each WS In Sheets
WS.Name = WS.Range("A5")
Next WS
End Sub
Run Code Online (Sandbox Code Playgroud) 是否有可能在一个语句中交换三个数字
例如:
我希望根据以下列表更改值
a = 20
b = 30
c = 10
Run Code Online (Sandbox Code Playgroud)
这些值可以在一行中传输吗?
我想使用VLOOKUP()由不相邻的列组成的表输入.
例
MyCell = VLOOKUP(A1, MyTable, 2, FALSE)
MyTable = B1:B10 and D1:D10
Run Code Online (Sandbox Code Playgroud)
有没有办法使用查找函数或任何其他工作表函数使此操作工作?现在我收到一个错误.
提前致谢.
编辑:这是因为表非常大,如果我使用整个表作为输入,我担心操作会减慢应用程序的速度
我正在尝试使用vba读取文本文件.我尝试了下面的代码
Open "C:\tester.txt" For Input As #1
Worksheets("UI").Range("H12").Value = Input$(LOF(1), 1)
Close #1
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我收到了一个错误.
运行时错误'62'.输入文件的结尾.
文本文件的内容是:
无法打开COM10.确保它是连接
加上其他的东西
和更多的东西
更多的东西
在此先感谢您的帮助.