Tag: vba

可见的公式

我尝试通过VB从CSV文件加载到Excel的值。 我有一些问题,我可以计算并显示在Excel中。 但是,在这种情况下,我想单击该单元格时显示公式。 例如:A1: 3 ,B1: 4 ,C1: =A1 + B1 每当列A和B有值,它会自动计算在VB中,但我想单击到C1或C2。 它会显示公式如何计算它。

如果工作表名称出现在单元格范围内,则select

我希望能够将多个特定的工作表保存为PDF。 我目前有这个代码工作: Sheets(Array("Print – Cover", "Print 2.2")).Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDFFile,Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ :=False, OpenAfterPublish:=OpenPDFAfterCreating 这将打印 – 封面和打印2.2页保存为预期的PDF。 而不是硬编码sheetnames,我想保存任何工作表有一个单元格范围内存在的名称。 例如,在我的ActiveSheet的单元格A1:A3中,我可以有蜜蜂,猫和狗 ,而macros将会 select工作表“蜜蜂”,“猫”和“狗” , 但不是“猪” ,作为工作表存在,但没有列出。 列出的页数可能会增加或减less。 这样做的目的是让用户可以轻松地指出他们想要保存哪些表而不必编辑macros。

行正在被复制并从一个工作簿粘贴到另一个时复制行

我有一个代码,允许我根据我想复制的国家进行过滤,并将其从一个工作簿粘贴到另一个工作簿。 然而,我面对的问题是当我运行的代码不止一次,find重复的行。 我不知道如何对代码进行改进,以允许代码防止重复行发生。 以下是我目前的代码。 它从外部工作簿复制时给了行的重复。 我想search的条件是“新加坡”,它在外部工作手册“主动主项目”中出现了不止一次。 因此,下面的代码将帮助find所有包含“新加坡”的行,并将其粘贴到另一个名为“新即将开展的项目”的工作簿中。 但是,当代码运行多次时,它将复制先前已经被复制的行。 外部工作簿将每月添加新行,因此下面的代码将允许search“新加坡”并将行粘贴到另一个工作簿中。 但是,它也复制了以前被复制的行。 因此,我有点卡在当前的代码。 Sub UpdateNewUpcomingProj() Dim wb1 As Workbook, wb2 As Workbook Dim ws1 As Worksheet, ws2 As Worksheet Dim copyFrom As Range Dim lRow As Long '<~~ Not Integer. Might give you error in higher versions of excel Dim strSearch As String Set wb1 = Application.Workbooks.Open("U:\Active […]

如果不是先前存在的话,从一列(newrawdata)导入/附加单元格到另一列(centrallibrary) – 匹配函数的date错误

下面的代码使用匹配函数来检查存储在列C的单元格中的新的一组值是否存在于存储在列A中的预先存在的范围内。 如果是,则在msgbox提示符下,显示与该值对应的行。 否则,使用“if iserror”语句来处理错误n / a,该语句会将有问题的值附加到列A中的下一个空行 问题: 这适用于文本和数字,但匹配函数似乎不正确返回date。 date值会附加到列A的底部,无论预先存在。 可能的错误: 在匹配函数中格式化或date值 要注意: 下面是一条设置为注释的行,但是在取消注释的date时创build一个错误 – 用于显示列A中的数据 'MsgBox(“Data pre-exists in row”&MatchAns) 很高兴提供例子。 Option Explicit Sub AppendNewRecords() 'example used – Column A, listed with a number of values including numbers, dates and text, 'Column C contains new raw data some matching Column A and some not, 'append new […]

将VBA复制到Word的Excel范围如图所示

大家好我对VBA很新,我正在努力创build一个macros。 我想复制作为数字的粘贴到Word文件倍数范围从Excel。 这是我想到的代码: Sub imagem1() Dim objWord, objDoc As Object ActiveWindow.View = xlNormalView Worksheets(2).Range("A1:O47").Select Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture Set objWord = CreateObject("Word.Application") Set objDoc = objWord.Documents.Add objWord.Visible = True objWord.Selection.Paste objWord.Selection.TypeParagraph ActiveWindow.View = xlPageBreakPreview End Sub Sub imagem2() Dim objWord, objDoc As Object ActiveWindow.View = xlNormalView Worksheets(2).Range("U1:AI47").Select Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture Set objWord = CreateObject("Word.Application") Set objDoc […]

请参阅引用应用程序的variables

我正在尝试将单元格的值放在左列(列A)中的Msgbox中。 这个值需要被挑选出来,这取决于B列中的哪个值是最低的,并且应该被重用,并且行长度是变化的(有时候是200行,有时候是230行等) 到目前为止,我写道: Sub Flow() 'Check lowest value Dim lowestValue As String lowestValue = Application.WorksheetFunction.Min(Sheets("ImportData").Range("B3:B290")) MsgBox "Lowest Flow" & vbNewLine & _ (lowestValue) & vbNewLine & _ "at " & (lowestValue.Offset(0, -1)) End Sub 很明显, lowestValue.Offset(0, -1))不起作用,但基本上这就是我想要实现的:find最低值,然后在左边看一列,并在单元格中显示该值。

代码重复一个macros

我需要在具有390行的源电子表格中为给定范围重复一个名为“DTest”的macros。 “DTest”macros创build一个新的Excel文件并转置粘贴范围并将文件名保存在给定path的单元格“B2”中的值。 Sub RepeatDTest() Range("1:1,2:2").Select Selection.Copy DTest Range("1:1,3:3").Select Selection.Copy DTest Range("1:1,4:4").Select Selection.Copy DTest End Sub 我的范围包括行1作为标题,行2到390作为新电子表格的行2中的内容。 如何编写范围(“1:1,2:2”),范围(“1:1,3:3”)…….范围(“1:1,390:390”)的代码?

在Excel中突出显示单词

所以我想我在这里find了我的问题的答案…但是当我复制并粘贴VBA代码时,在“With range.Find”行中出现“Compile error:Argument not optional”错误。 Sub HighlightWords2() Dim range As range Dim i As Long Dim TargetList TargetList = Array("words") 'put list of terms to find here For i = 0 To UBound(TargetList) Set range = ActiveDocument.range With range.Find .Text = TargetList(i) .Format = True .MatchCase = True .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike […]

为什么预约不会偶尔删除

我有一个Excel工作簿中的VBAmacros,用户日历中用特殊标记创buildOutlook约会。 在添加新的约会之前,它首先删除在物品主体中具有该标签的所有约会。 不幸的是,Outlook.AppointmentItem.Delete函数有时不起作用。 当我打开我的Outlook日历时,我可以看到该项目被删除很短的时间,并立即重新出现。 这只是偶尔发生。 我可以通过使用特定标记两次复制AppointmentItem来强制执行此行为。 然后,只有两个约会将被删除,一个保留在日历中。 任何人都可以解释什么可能导致此行为? Public Sub DeleteAppointment(Starttime As Date, Endtime As Date) Dim myStart As Date Dim myEnd As Date Dim olApp As Outlook.Application Dim oCalendar As Outlook.Folder Dim oItems As Outlook.Items Dim oItemsInDateRange As Outlook.Items Dim oAppt As Outlook.AppointmentItem Dim strRestriction As String Dim olNs As Outlook.Namespace Dim blnCreated As […]

有条件地将行移动到另一个工作表中

我希望有人能帮助我。 我有一张名为“细节”的另一张电子表格,另一张名为“已对帐”的电子表格。 我在Details中有1000多行,我想剪切E列(我想剪切整行)中所有具有0或者 – 的行,并将其粘贴到Sheet Details中。 如果可能的话,我想复制并粘贴标题从Reconciled到详细信息。 我试过使用这个代码(稍微修改)在另一篇文章中使用 Sub Test() For Each Cell In Sheets("Details").Range("E:E") If Cell.Value = "0" Then matchRow = Cell.Row Rows(matchRow & ":" & matchRow).Select Selection.Copy Sheets("Reconcile").Select ActiveSheet.Rows(matchRow).Select ActiveSheet.Paste Sheets("Details").Select End If Next End Sub 但是有两个问题。 因为有些值(数字是真的)会被移动,但0.00的值不会被移动,因为它们是四舍五入的(我认为这就是为什么它们没有被移动)。 此外,屏幕更新奇怪,我很抱歉,我不能解释更多。 任何帮助,将不胜感激