Tag: excel vba

Excel VBA的密码散列函数

我需要一个用Excel VBA编写的函数,它将使用SHA-1等标准algorithm对密码进行哈希处理。 一些简单的界面,如: Public Function CreateHash(Value As String) As String … End Function 该function需要在安装了Excel 2003的XP工作站上工作,否则不能使用第三方组件。 它可以引用和使用XP提供的DLL,比如CryptoAPI。 有谁知道一个样本来实现这个散列函数?

将每张工作表保存在工作簿中以分隔CSV文件

如何将每个工作表保存在Excel工作簿中以使用macros分隔CSV文件? 我有一个多张工作表,我正在寻找一个macros,将每个工作表保存到一个单独的CSV (comma separated file) 。 Excel将不允许您将所有工作表保存到不同的CSV文件。

将行整理,整理并转换为列

我有下面的表格 Id Letter 1001 A 1001 H 1001 H 1001 H 1001 B 1001 H 1001 H 1001 H 1001 H 1001 H 1001 H 1001 A 1001 H 1001 H 1001 H 1001 B 1001 A 1001 H 1001 H 1001 H 1001 B 1001 B 1001 H 1001 H 1001 H 1001 B […]

基于search键VBA删除行

我试图删除使用VBA在列B中find值“X”的每一行。 不过,我有三个问题: 我不能让我的VBA代码使用cells.find方法从活动单元格下移到下一个单元格(B3)(请参阅下面的代码) 我的代码不会删除列B中find值“X”的整个行 B列中的数据量可能有所不同:可以在今天B10或明天B100结束(见下面的屏幕截图) 任何援助将不胜感激。 Sub RemoveRows() Dim strLookFor As String Dim strRow As String Worksheets("Sheet1").Range("B2").Activate strLookFor = "X" strRow = Range("B2").Address Do Until ActiveCell.Value = "" MsgBox (ActiveCell.Value) If ActiveCell.Value = strLookFor Then Rows.Delete (strRow) End If strRow = Cells.Find(what:=strLookFor).Address Loop MsgBox ("Deleted all rows with value " & strLookFor) End Sub

如果值匹配,将单元格数据连接成另一个数据

我在同一张Excel表中有两columns A and B 我想,如果在Column B两个值匹配,那么它应该复制相关的值在同一行中的值。 例如 表 Column A Column B xyz 1 abc 1 pqr 1 eee 2 qqq 3 www 4 oop 5 Desierd输出 column A Column B xyz,abc,pqr 1 eee 2 qqq 3 www 4 oop 5

删除无法用SpecialCells抓取的行的最快方法

基于本网站上的另一个问题 ,我开始想知道删除所有具有一定条件的行的最快方法。 上面提到的问题带有各种解决scheme: (1)循环浏览表单中的所有行(向后)并删除符合条件的所有行。 (2)首先将适用的范围移动到数组中,然后评估数组中的条件,并基于此 – 在基础工作表上逐个删除所有行。 可能的改进可能是删除块中的所有行,以减less访问工作表的开销。 但是,如果你走这条路线,那么在你实际删除之前,你有各种select来“存储”范围: (1)使用Intersect来合并应该删除的范围。 (2)简单地写一个所有要删除的行的String 。 那么,这是最快的方法呢?

我可以使这个macros更有效率或更快?

我是全新的编码。 这个macros运行缓慢,我希望有人能帮我清理它。 在此先感谢您的帮助。 我开发了代码来更新我公司的“呼叫路由器”工作表,其中包含从外部购买的新线索。 这些线索以原始格式在我们的工作表中被称为Fresh Agents Leads。 一旦“新鲜代理信息”表复制到“呼叫路由器”工作表中的“MSS呼叫路由主列表”文件中,macros将减less原始数据,从而消除我们不使用的部分。 然后,重新格式化与旧呼叫路由器工作表的格式相匹配的内容,并将两者合并。 然后将新的主表重命名为呼叫路由器。 该代码旨在从容纳新鲜代理信息表的工作簿开始。 指示用户在执行代码之前在桌面上同时打开新鲜代理线索文件和MSS呼叫路由主列表。 Sheets("Fresh Agent Leads").Select Sheets("Fresh Agent Leads").Copy After:=Workbooks( _ "MSS Call Routing Master List.xlsx").Sheets(1) Columns("F:F").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Range("A1").Select Selection.Copy Columns("F:F").Select ActiveSheet.Paste Columns("A:A").Select Application.CutCopyMode = False Selection.Delete Shift:=xlToLeft Columns("C:C").Select Selection.Delete Shift:=xlToLeft Columns("E:E").Select Selection.Delete Shift:=xlToLeft Selection.Delete Shift:=xlToLeft Columns("G:S").Select Selection.Delete Shift:=xlToLeft Rows("1:1").Select Selection.Delete Shift:=xlUp Columns("C:C").Select Selection.Insert […]

将整个范围转换为大写,而不循环遍历所有单元格

现在我正在使用下面的代码将小写字母列表从小写字母转换为大写字母: Dim Tickers As String Dim n As Integer For n = 2 To Last Tickers = UCase(W.Cells(n, 1).Value) W.Cells(n, 1).Value = Tickers Next n 有没有一种方法可以将整个范围转换成一行? 就像是: Range("A1:A20").convertouppercasesomehow

获取ScriptControl以使用Excel 2010 x64

我试图使用解决这个问题 ,但是,每当我尝试运行最基本的东西,我得到一个Object not Defined错误。 我以为这是我的错(没有安装ScriptControl)。 不过,我试着按照这里所描述的安装,无济于事。 我正在使用Office 2010 64位版本运行Windows 7 Professional x64。

从Excel VBA发送格式化的Lotus Notes富文本电子邮件

我有一点Lotus脚本或Notes / Domino的知识,但我有一个程序,从很久以前的地方复制,允许我通过从VBA的Notes发送电子邮件。 我通常只使用此格式的内部通知没有真正重要。 我现在想用这个发送外部电子邮件给客户,企业types宁愿电子邮件符合我们的风格指南(基本上是一个无衬线字体)。 我正要告诉他们,代码只能用纯文本工作,但是我注意到例程确实引用了某种CREATERICHTEXTITEM对象。 这是否意味着我可以应用某种forms的正文文本string之后,它已被传递给邮件例程? 除了维护我们珍贵的品牌价值之外,这对于突出电子邮件中的某些段落也非常方便。 我已经深入了解了这个networking,看看这个代码是否可以适应,但是不熟悉Notes的对象模型,以及在线Notes资源似乎反映了应用程序本身的迷茫,这意味着我没有得到很好的远。 代码: Sub sendEmail(EmailSubject As String,EMailSendTo As String,EMailBody As String,MailServer as String) Dim objNotesSession As Object Dim objNotesMailFile As Object Dim objNotesDocument As Object Dim objNotesField As Object 昏暗的sendmail作为布尔值 “添加到报告工具集成 Dim dbString As String dbString =“mail \”&Application.UserName&“.nsf” 在错误转到SendMailError “build立与Notes的连接 设置objNotesSession = CreateObject(“Notes.NotesSession”) 在错误恢复下一步 build立连接到邮件文件 设置objNotesMailFile = objNotesSession.GETDATABASE(MailServer,dbString) […]