Tag: excel vba

VBAstring比较失败

当我比较两个string时,遇到了有趣的问题。 我从文件中读取数据,一切正常。 然后同事给我发送input文件,这只是工作文件的CTRL + C和CTRL + V。 然后奇迹发生! VBA是如此混乱,不能比较两个简单的string,我倒了椅子。 如果你看看图像,你可以看到比较通过,如果条件是两个相同的string,但不应该。 我有点困惑如何发生。 所以遇到这样的人? 我真的开始考虑像终结者机器革命的东西。 (文件都保存在记事本+ +没有奇怪的字符或类似的东西) 进度更新 所以我试着从下面的评论中提示。 结束了这样的事情 If CStr(Trim(rowArray(4))) <> (CStr("N/A")) Then rowArray(4)的内容仍然是上图中的“N / A”string,而且excel仍然认为这个string不一样。 我也保存在pspad,netbeans和正常的记事本中的文件,问题仍然是一样的。

visual basic excel中的基本语法错误

我想用这个macros删除非字母数字字符。 这个简单的程序给我一个语法错误。 我根本不明白这个错误。 Sub CleanAll() Dim rng As Range Application.ScreenUpdating = False ' Turns off screen updating On Error Resume Next ' Macro will continue if it encounters #N/A 'Adjust "Sheet1" and Range in Line 6 For Each rng In Sheets("Sheet1").Range("A2:A1629").Cells rng.Value = AlphaNumericOnly(rng.Value) ' Function call Next Application.ScreenUpdating = True End Sub Function AlphaNumericOnly(strSource […]

在VBA中使用替代函数运行时1004错误

任何想法为什么这个代码产生运行时1004错误? Dim outputHtml As String, tbody As String outputHtml = Right(htmlCode, Len(htmlCode) – InStr(htmlCode, "<div class=""b-campaign-stat-data b-campaign-stat-data_type_custom"">") + 1) tbodyStart = InStr(outputHtml, "<tbody") tbodyEnd = InStr(outputHtml, "</tbody>") tbody = Mid(outputHtml, tbodyStart, tbodyEnd + 8 – tbodyStart) outputHtml = WorksheetFunction.Substitute(outputHtml, tbody, "g") 这是绊倒它的最后一行。 我已经尝试了Application.Substitute以及…

保留特定于预期工作表的子工具

下面的Excel子版每分钟运行几个小时。 它工作正常,除非我切换到不同的工作簿。 在那一刻,它在第三行炸了下来。 我如何让它专注于它打算的工作表? Sub RunEvery60seconds() Range("A13").End(xlDown).Select ActiveCell.Offset(1, 0).Select ActiveCell.Value = Format(Now(), "hh:mm:ss") Call Fetch Call OnTimeMacro End Sub 有可能有一些简单的语法,我忽略了。 我将不胜感激一些帮助。 谢谢

将单元格内容识别为文件名的语法

我已经写了一个Excelmacros将PDF文件从源文件夹复制到目标文件夹。 我现在正试图将一个Do循环合并到macros中,这样我就可以移动多个文件,每个文件都在一个单独的单元中标识。 此外,要移动的文件数量也会有所不同。 当我使用命令行 sFile = Range("G14").Value & ".pdf" 它会将单元格G14中列出的文件复制到目标文件夹。 但是,我没有使用Do Loop和sFiles = Cells (I,7)来增加我想要移动的一系列文件名。 这个macros在最后一步轰炸。 任何build议,将不胜感激。 Sub Copying_File() Sheets("Sheet1").Select I = 8 Do I = I + 1 If Cells(I, 7) = "zzzz" Then Cells(I, 8) = "Transfer of Files Complete" If Cells(I, 7) = "zzzz" Then Exit Do 'Declare Variables Dim FSO Dim […]

如何调用位于其他文件夹中的VBA脚本中的VBA脚本

我有一个名为“Summary_logic”的Excel工作表,它打开文件夹列表,每个文件夹都有一个带有VBA脚本的Excel工作表。 我想调用每个文件夹中的VBA脚本(processR1),并将结果复制到Summary_logic表单中。 'My code is given below. Private Const test_pvt_1_name As String = "TestPVT_Result_template" Private Const pvt_1_range As String = "G7:V1000" Private Const pvt_1_range_testname As String = "C7:C1000" Sub CleanTable() clear_summary delete_auxiliary_sheets Sheets("Summary_logic").Select End Sub ' Deletes all the values in the specified range Private Sub clear_summary() Sheets("Summary_logic").Select 'PVT_R01, Sensitivity Range: Range(pvt_1_range).Select Selection.ClearContents Range(pvt_1_range_testname).Select Selection.ClearContents […]

Excel VBA – 对象'_Global'的方法'范围'失败。 错误

我是新的excel VBA和在这个项目中,我想如果单元格B4不是空的,单元格C4是空的,那么应该高亮显示C4。 同样的代码应该循环到B16单元格。 “AMA79”是工作表名称。 我得到对象'_Global'的方法'范围'失败。 错误使用此代码。 你可以让我知道该怎么做才能纠正这个问题。 Dim i As Integer Dim rng As Range Set rng = Range("B4:B16") For i = 4 To 16 With ThisWorkbook.Worksheets("AMA79") If Range(B, i).Value <> "" And Range(D, i).Value = "" Then Range(c, i).Interior.Color = vbYellow End If End With Next i

如何在使用vba的邮件正文中连接文本,当我们需要使用IF THEN条件?

我想结合邮件正文中的文本,也需要使用IFTHEN条件。 我应该如何继续。 下面给出的是代码,可以看到Body之间的If条件。 Dim olApp As Object Set olApp = CreateObject("Outlook.Application") Dim olMail As Object Set olMail = olApp.CreateItem(olMailItem) Dim x As Integer Dim i As Integer Dim last As Integer x = 3 i = 2 last = Range("H" & Rows.Count).End(xlUp).Row Cells(23, 2).Value = last Do While i <= last If x – i […]

VBA错误1004:范围类的PasteSpecial方法失败

我现在使用的任何一种粘贴方法都有点麻烦。 从一张纸上的数据必须剪切和粘贴到另一张,但我不知道我错过了什么。 错误发生在这里,在评论“HERE”之后不久: Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 完整的代码可以在下面find,感谢任何答复。 Option Explicit Public Sub Workbook_Open() Application.ScreenUpdating = False Application.DisplayAlerts = False Dim wb As Variant Dim wsName As Variant Dim blastrow As Variant Dim flastrow As Variant Dim lastrow As Variant ActiveWorkbook.Sheets("combined").Select Range("A1:U9999").ClearContents Dim MyObj As Object, MySource As Object, file As Variant file = Dir("G:\BS\Josh […]

Excel使用单元格值作为VBA中的范围

我有一个Excel文件。 A列每次都有一个可更改的行数量,这就是为什么我需要dynamic公式。 例如; 我想在B1上写“= LEN(B1)”公式。 在单元右下angular双击时,直到A列值结束时为止。 这就是为什么在这个过程之前,我在C1单元上写了“= COUNT(A:A)”。 在我的VBA中,我想写; Dim TEMP As String TEMP = Range("C1").Value Range("B1").Select ActiveCell.FormulaR1C1="=+LEN(RC[-1])" Selection.AutoFill Destination:=Range("B1:TEMP") 但是在这个过程中有什么问题。 因此,我只想在我的VBA中使用单元格值作为范围或string或数字。 感谢您的支持。