Tag: vba

创build新的工作簿并复制/粘贴。 更快的解决scheme?

目前下面的代码工作正常,但是原来的“filelocation1”暂时打开,最终用户在一秒钟之内就可以看到它。 有没有办法做同样的事情,但它运行得更快和/或可能永远不会打开原来的工作簿? vba: Private Sub CommandButton1_Click() Dim wbI As Workbook, wbO As Workbook Dim wsI As Worksheet, wsO As Worksheet Dim filelocation1 As String Dim filelocation2 As String filelocation1 = Environ("USERPROFILE") & "\Desktop" & "\" & Format(Date, "ddmmyyyy") & ".xls" filelocation2 = "\\file\nextfile\fileafterthat\etc" & "\" & Format(Date, "ddmmyyyy") & Application.UserName & ".xls" Set wbI = […]

VBA通过If语句错误连接

我正在和一家电话公司合作,允许我通过电子邮件路由系统发送短信。 所以,我会通过电子邮件将消息发送到他们的服务器,它将通过短信发送到最终号码。 问题是,我需要将数百个各种格式的电话号码转换成使用to … from @ …格式的电子邮件地址(包括1 +区号)。 我写了一个很好的公式:= IF(LEN(a1)= 5,CONCATENATE(“1813”,a1,“00”,“ – 1813xxxxxxx@sms.xx.com”),IF(LEN(a1)= 6 ,CONCATENATE( “1813”,A1, “0”, “ – 1813xxxxxxx@sms.xx.com”),IF(LEN(A1)= 10,CONCATENATE( “1”,A1,“ – 1813xxxxxxx@sms.xx。 COM “),(IF(LEN(A1)= 7,CONCATENATE(” 1813" ,A1, “ – 1813xxxxxxx@sms.xx.com”),A1))))) 它添加了所需的文本,但是我想把它变成一个VBA。 我是VBA的新手(原谅我,如果这是一个新秀的错误),但这是我到目前为止: Option Explicit Sub SMSemail() Dim phone1 As String Dim smsaddy As String Dim x As Long lastrow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row For […]

Excel图表忽略特定date的其他数据值

我有一个macros从一个数据范围生成Chart 。 看到下面的数据: 2015/08/01 12:49.002 2015/08/01 00:41.600 2015/08/02 00:27.198 2015/08/03 01:05.600 2015/08/03 01:30.599 2015/08/04 02:29.799 2015/08/05 01:40.199 2015/08/06 01:36.199 2015/08/07 02:16.998 2015/08/07 00:43.401 第一列表示date,第二列表示该date的时间范围。 注意我在表格中find的原始数据是已经合并的单元格。 请参阅以下屏幕截图了解更多信息。 问题是图表只显示分配给该date的较大号码。 看下面的代码。 Option Explicit Public Declare Function GetTickCount Lib "kernel32.dll" () As Long Sub CreateChart() Dim DateRange, TimeRange As Range Dim lastRow As Long Dim StartRow As Long, columnIndex […]

Excel:从HTML标题查询属性

我想使用excel vba从网页中的标题types中提取属性值。 我想从网页上刮取的数据具有以下结构: <div class="index-detail"> <h5><a href="/indices/equity/dow-jones-sustainability-chile-index-clp" title="DJSI Chile" contentIdentifier="2e9cb165-0cbf-4070-a5ef-dc20bf6219ba" contentType="web-page" contentTitle="Dow Jones Sustainability™ Chile Index (CLP)">DJSI Chile</a></h5> <span class="return-value">917.08 </span> <span class="daily-change down ">-0.1% ▼ </span> </div> 使用getElementsByClassName和getElementsByTagName我已经提取了标题<h5> ,但是当我打印标题的innerText时,我得到了DJSI Chile ,但是我想要得到Dow Jones Sustainability™ Chile Index (CLP)属性contentTitle的文本Dow Jones Sustainability™ Chile Index (CLP) 。 我怎样才能做到这一点? UPDATE 代码是我使用如下: Sub myConSP() ' Declare variables Dim oHtmlSP As HTMLDocument […]

根据一系列单元格的隐藏/未隐藏状态隐藏/取消隐藏行

如果隐藏了整个行的范围,我想取消隐藏一行。 如果该范围内的单行不被隐藏,我想隐藏这一行。 这是什么语法? 我目前的代码如下: Public Sub MySub() Application.ScreenUpdating = False With Range("A1:A5") .EntireRow.Hidden = False For Each cell In Range("A1:A5") Select Case cell.Value Case Is = "-" cell.EntireRow.Hidden = True End Select Next cell End With Application.ScreenUpdating = True End Sub

在Access VBA中使用集合

我有以下的子程序在Access VBA中: Sub SampleReadCurve() Dim rs As Recordset Dim iRow As Long, iField As Long Dim strSQL As String Dim CurveID As Long Dim MarkRunID As Long Dim MaxOfMarkAsofDate As Date Dim userdate As String CurveID = 15 Dim I As Integer Dim x As Date userdate = InputBox("Please Enter the Date (mm/dd/yyyy)") x = […]

我必须运行我的macros两次是正确的

我在Excel中创build了一个遍历每个工作表的macros – 将文本转换为数字,然后从数据创build一个graphics。 我需要运行我的macros两次才能正常工作。 第一次,只有第一张图表是正确的。 对于其他选项卡,将所有文本转换为数字,但graphics不映射到正确的数据。 我第二次运行macros,一切都是应该的。 Sub UCS_Inventory_Mac1() Dim I As Integer Dim WS_Count As Integer WS_Count = ActiveWorkbook.Worksheets.Count + 1 For I = 1 To WS_Count Range("B2:H15").Select With Selection Selection.NumberFormat = "General" .Value = .Value End With If I = 1 Then Range("B2").Select ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select ActiveChart.SetSourceData Source:=Range("Sheet1!$A$1:$E$4") ActiveChart.SetElement (msoElementDataLabelOutSideEnd) ActiveChart.SetElement (msoElementLegendBottom) ActiveChart.SetElement (msoElementLegendTop) […]

macros复制图表Excel-Word更改图表外观

我将Excel(2010)中的图表复制粘贴为Word中的图像。 复制粘贴的作品,但Word中的最终图表是不同于原来的,我手动复制粘贴(粘贴特殊 – 图片)。 我试图改变粘贴的数据types和复制的格式,但结果总是相同的。 任何其他选项? Sub ChartsToWord() Dim WDApp As Word.Application Dim WDDoc As Word.Document Dim iCht As Integer Dim Msg As String Set WDApp = CreateObject("Word.Application") Set WDDoc = WDApp.Documents.Add For iCht = 1 To ActiveSheet.ChartObjects.Count ' copy chart as a picture ActiveSheet.ChartObjects(iCht).Chart.CopyPicture _ Appearance:=xlScreen, Size:=xlScreen, Format:=xlBitmap WDApp.Selection.Range.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, _ Placement:=wdInLine, DisplayAsIcon:=False […]

Excel vba:从空行的列中获取范围

我有一列,我想根据从另一列的值提取信息(与空单元格)。 这个问题帮了我很多,但我现在有一个多个空单元格的列,公式不工作… 代码 : Private Sub techCombo_Change() Dim ws As Worksheet Dim rFound As Range Dim cCmbBox As MSForms.ComboBox Set cCmbBox = ActiveWorkbook.Sheets(1).custCombo cCmbBox.Clear With Me.cmbSheet If .ListIndex = -1 Then Exit Sub Set ws = ActiveWorkbook.Sheets(.Text) End With With Me.techCombo If .ListIndex = -1 Then Exit Sub Set rFound = ws.Columns("A").Find(.Text, ws.Cells(ws.Rows.Count, "A"), xlValues, […]

如何防止随机调用此代码

我正在为VBA开发VBA脚本,目前我正在删除每个工作表,但“Jan2016”,然后复制“Jan2016”并重命名它几次。 不幸的是,当我运行我的代码时,我的DeleteAllButJanuary()函数被随机地称为删除每个工作表,但1月再次,并导致它重新开始,最终失败。 这是我的代码: Sub GenerateData() Dim WS_Count As Integer Dim I As Integer Dim Jan As Integer Dim Months() As String Months = Split("Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec", ",") ' Set WS_Count equal to the number of worksheets in the active ' workbook. WS_Count = ActiveWorkbook.Worksheets.Count Call DeleteAllButJanuary For I = 2 To WS_Count ActiveWorkbook.Worksheets("Jan2016").Copy _ After:=ActiveWorkbook.Worksheets("Jan2016") ActiveWorkbook.Worksheets(I).Name = […]