Tag: vba

Excelmacros将单元格格式更改为受保护工作表的文本

我有一个要求打开工作表一旦更改受保护的工作表单元格格式为文本(从date)。 我的意思是说价值应该出现在表单中。 我已经将我的代码保存在ThisWorkBook的Workbook_Open()事件中,以及下面给出的步骤顺序。 取消保护工作表: gSampleSheet.Unprotect Password:="MyPassword" 更改单元格格式: gSampleSheet.Range("K1:K100").NumberFormat = "Text" 保护工作表: gSampleSheet.Protect DrawingObjects:=False, contents:=True, Scenarios:=True, Password:="MyPassword" 在单元格中inputdate值时,应将其转换为文本格式,并且该值应按原样显示。 即如果input12/12/15,12.12.15,12-12-15,12-Dec-15,那么它们应该在input时出现(而不是改变成date格式)。 但是单元格显示了一些随机值,如T2015tx或其他值。 请帮我解决这个问题,因为我正在努力寻找根本原因。

Excel中使用一个声明variables在另一个子

我想在这里做的是使用我声明的“vSelection”在另一个小组,但它似乎并没有工作。 也许任何人都可以帮助我? 这是我宣布的地方。 Public Sub cmdBladeren_Click() Dim vSelection As Variant vSelection = Application.GetOpenFilename("Graphics files (*.gif), *.gif") If vSelection = False Then MsgBox "Selecteer een foto!" Exit Sub End If End Sub 这是我想要使用它的地方 Private Sub btnOK_Click() Dim rngRange As Range Dim rngProduct As Range Dim lTop As Long Dim lLeft As Long Dim oShape As Shape […]

性能问题在外部数据源的两个表中运行Excel中的macros

在工作表上,我有两个表,它们是从两个不同的外部来源填充的,一个来自db2和另一个SQL服务器。 一旦表中的数据被刷新,我将触发一个运行VBA代码的macros,这个代码循环遍历两个表中的单元格并应用业务规则。 在本地进行testing,按预期工作,macros在几秒钟内完成。 当我将连接更改为指向networking上的db2和SQL Server数据库时,它会及时刷新数据,但是当我触发macros时, 30分钟即可完成。 只有连接已被更改,我正在使用相同的工作簿进行所有testing。 首先想到的是,它现在正在从networking中提取数据,可能是连通性的,但是它刷新了数据OK,而且它只是运行缓慢的macros,VBA代码不使用连接,只是循环的基础。 我失去了什么是造成这一点,想知道是否有人曾经遇到过这种行为,知道如何解决它?

从embedded的模板文件中将模板应用于Excel VBA中的powerpoint

我正试图通过excel将一个模板应用到一个简报。 PowerPoint模板通过插入 – >对象embedded到我的Excel文件中。 我已经成功地使用.applytemplate方法来从文件中应用模板,但我无法调整代码以引用embedded的PPT模板。 我试过使用OLEObject,但是恐怕这是不正确的。 请查看下面的代码。 Sub ppCreate() Dim myPP As PowerPoint.Application Dim myPres As PowerPoint.Presentation Dim activeSlide As PowerPoint.Slide Dim ppObj As OLEObject ' Create instance of PowerPoint Set myPP = CreateObject("Powerpoint.Application") ' For automation to work, PowerPoint must be visible myPP.Visible = True ' Create a presentation Set myPres = myPP.Presentations.Add ' […]

只想在运行VBA代码的时候显示一个Popup或者状态栏

我有一个很长的代码,并采取约。 1分30秒执行,所以我想显示一个状态栏显示“请稍等…正在运行”或一个popup式的相同的消息或任何其他的将是容易的。 它包括很多做,而如果条件..我不想用任何长码或非常沉重的方法来显示消息,请build议一些小方法来做到这一点。

如何获取多列中的string和相邻数字

我想要运行一个循环,按照一定的标准对文本进行分组,然后加起来,但是我需要能够抓取两个数据。 Connecticut 624 Georgia 818 Washington 10 Arkansas 60 New Jersey 118 Ohio 2,797 select将是类似的东西,我希望用户能够突出显示两列,我将贯穿并按位置分组状态,并添加总计 编辑 – 到目前为止,我所能做的就是抓住用户select的范围: Sub Short() Dim rngMyRange As Range If TypeName(Selection) = "Range" Then Set rngMyRange = Selection Else Exit Sub 'Non-range type selection eg a chart End If MsgBox "The address of rngMyRange is " & rngMyRange.Address(False, False) End […]

运行时错误91对象variables或未设置块variables

我是新来的VBA为Excel和我坚持一个小问题。 我有一个数据列表,我有两个任务,我想完成。 第一个将删除J列中任何等于0的值的行; 第二部分:我想循环遍历剩下的行,并删除I列中的值大于J列中的值的行。 但是,我收到以下错误:VBA运行时错误91对象variables或未设置块variables 这是说: For rw = .Cells(rows.Count, "E").End(xlUp).Row To 2 Step -1 完整的代码是 Private Sub clearupdata_Click() Dim rows As Range, OSQty As Range, value As Long, rw As Long Set OSQty = Range("j2") Do Until OSQty.value = "" value = Val(OSQty.value) If (value = 0) Then If rows Is Nothing Then Set […]

使用VBA在Excel中select多个可变单元格区域以绘制边框

我有一个标签,自动接收从电子表格的另一部分提取的数据。 总是有三列数据用于报告:列A具有任务描述,列B具有人工编号,列C具有费用编号。 Col F有一个数字,表示该部分的行数(每次都会有所不同,但它是随着提取而来的 – 不需要计算)。 我只是想在每个部分周围绘制边框。 所以如果我手动做,我selectA2:A7并select外部边界。 然后我selectB2:B7并做同样的事情。 然后C2:C7重复。 我知道有多less行,因为这个数字在F列。 然后我进入下一节并做同样的事情,但是行数可能会不同,但在F列中标识。 该过程将被重复,直到所有部分都被概述为止。 可能有3个部分,或20个。我想我可以根据列F中的数据条目的计数循环序列。 这里是之前和之后的链接: Excel边界自动化 – 之前 Excel边界自动化 – 之后

AdvancedFilter CopyToRange:=第一个空行

我想在VBA中使用AdvancedFilter,而不是将副本设置为范围到固定值,我想将其复制到第一个空行。 我想从两个单独的AdvancedFilter步骤附加两个表,有没有更简单的方法? 例如,首先复制两个表来分隔位置,然后合并它们? 两个表都有相同的列。 我现在的代码是: Set rngCriteria_v = Sheets("1").Range("filter") Set rngExtract_v = Sheets("2").Range("**Here first empty row**") Set rngData_v = Sheets("3").Range("Input") rngData_v.AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=rngCriteria_v, _ CopyToRange:=Sheets("Stocks_5_control").Columns("AG").Find(vbNullString, Cells(Rows.Count, "AG")), _ Unique:=False

从TextBox中的单词末尾删除逗号

我正在尝试使用VBA从文本框中的名称末尾删除逗号。 有了这个问题,我首先必须通过点击一个命令button来将一个名称分类到两个文本框中。 问题是用户可能input名字作为FirstName, LastName或FirstName (single space) LastName 。 现在我卡住试图删除逗号。 删除特定的数字或字母已成功,但删除逗号将无法使用。 我得到的消息是语法错误 。 我的代码: Private Sub CommandButton1_Click() Dim LNFN As String Dim LastName As String Dim FirstName As String LNFN = TextBox4.Text FirstName = Split(LNFN)(1) LastName = Split(LNFN)(0) TextBox2.Text = FirstName TextBox3.Text = LastName TextBox2 = TextBox2.Value If Right(TestBox2, 1) = “,” Then TempString = Left(TextBox2, […]