Tag: 子程序

excel vba子程序调用失败

我有以下问题。 我想调用一个soubroutine来改变单元格区域的背景颜色。 单元格范围用单元格(1,1)计算,然后计算地址以接收A1。 在子程序被调用之前,我得到了像这样的单元格的地址: Range1 = cells(4, 4).Address(RowAbsolute:=False, ColumnAbsolute:=False) Range2 = cells(4, CellAmount – 1).Address(RowAbsolute:=False, ColumnAbsolute:=False) 我以为我需要这个,因为子程序是这样声明的: Sub SetBGLightGrey(cells As String) range(cells).Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 15921906 .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub 范围1和范围2是string,我把它连接到范围声明: RangeArea = """" & Range1 & ":" & Range2 & """" […]

Excel VBA:停止在Outlook电子邮件创build子例程工作

我有一天问了这个问题,并认为我find了答案,但现在Excel继续进入“Not Responding”模式。 我的问题是,程序在一些计算机上运行良好,但在别人的炸弹。 背景:在用户填写Excel表单并点击提交后,该程序就会运行。 程序validation数据,操作数据,通过Outlook创build电子邮件,最后保存并closures文档。 该计划在许多同事的电脑上运行。 我们都运行在Windows 7,Office 2013,但我们有些人有不同的笔记本电脑(惠普,戴尔等) 这里是对子程序的调用,它是excel开始“不响应”的代码行 – 仅供参考,这不是debugging停止: Call EmailApprovalP1(GeneralSection, ItemSection, VendorSection, MarketSection, Part1Section, wbLog, wbPCD, resubmission) 这里是被调用的子程序的开始: Public Sub EmailApprovalP1(ByRef GeneralSection As Object, ByRef ItemSection As Object, ByRef VendorSection As Object, ByRef MarketSection As Object, ByRef Part1Section As Object, ByRef wbLog As Workbook, ByRef wbPCD As Workbook, ByRef resubmission As […]

如何在excel vba中获得一个子程序来返回一些东西?

我在Excel VBA中有以下代码: Sub main() Call Get_Rows_Generic("usersFullOutput.csv", 1) End Sub 在另一个模块中我有: Sub Get_Rows_Generic(work_sheet As String, column_num As Integer) Dim wsUsers As Worksheet: Set wsUsers = Worksheets(work_sheet) Dim userRows As Integer: userRows = wsUsers.Cells(Rows.Count, column_num).End(xlUp).Row MsgBox userRows End Sub 我如何访问子Get_Rows_Generic的子Get_Rows_Generic ( MsgBox显示的)的结果? 即将结果input另一个子或单元格等等。

VBA子程序声明问题,从正确执行中停止Excel VBA

我正在处理一个简单的子例程以从主工作表中提取值并将这些值移动到附加工作表。 当我运行VBAmacros它永远不会超过子程序声明,任何build议将不胜感激。 Option Explicit Sub Macro2() Dim rCell As Range, ws As Worksheet Application.DisplayAlerts = False With Sheets("Sheet1") Sheets.Add().Name = "Temp" .Range("D2", .Range("D" & Rows.Count).End(xlUp)).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets("Temp").Range("B1"), Unique:=True For Each rCell In Sheets("Temp").Range("D2", Sheets("Temp").Range("B" & Rows.Count).End(xlUp)) If Not IsEmpty(rCell) Then .Range("D2").AutoFilter field:=3, Criteria1:=rCell If SheetExists(rCell.Text) Then Set ws = Sheets(rCell.Text) Else Set ws = Worksheet.Add(After:=Worksheets(Worksheets.Count […]

如何合并两个子与私人小组Worksheet_Change在工作表上,有不同的触发器

我已经尝试了很多变化(这一切都在网上find,因为我是一个新手),不能'工作。 我哪里错了? 我有一个包含2个单元格的电子表格,可以通过下拉菜单进行更改,对于每个单元格,我需要一个不同的子单元以在更改时激活。 我可以单独做这些工作,但不能把它们结合起来。 你能帮忙吗? 这是我迄今为止: Private Sub Worksheet_Change(ByVal Target As Range) 'hides currencies that aren't required 'On Error GoTo 99 If Not Intersect(Target, Range("B8")) Is Nothing Then Columns("F:F").EntireColumn.Hidden = False Columns("E:E").EntireColumn.Hidden = False Application.EnableEvents = False If Range("B8").Text = "" Then Columns("F:F").EntireColumn.Hidden = True Columns("E:E").EntireColumn.Hidden = False GoTo Letscontinue Else Columns("F:F").EntireColumn.Hidden = False Columns("E:E").EntireColumn.Hidden […]

我可以根据另一个Sub是否运行来运行一个Sub吗? (EXCEL VBA)

所有,我有一个用户表单,并试图让我的用户使用两个不同的文本框来search基于任一文本框中的值的工作表。 表单根据活动单元格填充其他框。 我的问题是:我可以编写两个子代码来检查另一个是否已经执行? 我的伪代码如下: >Sub StatusTextBox_AfterUpdate() >>'Check if TransitTextBox_AfterUpdate() has run >>>'If yes Then End Sub >>>>'If No Then Carry on with the rest of StatusTextBox_AfterUpdate() 这将改变TransitTextBox的值从工作表拉,我想防止TransitTextBox_AfterUpdate()运行。 问题是只要TransitTextBox被填充,AfterUpdate事件就会运行,两者冲突。 有没有办法防止这种情况?

Excel 2010要求在打开另一个工作簿时通过VBA打开两次PW

我有一个工作簿,打开时,我想从位于远程服务器上的共享驱动器上的另一个工作簿中复制信息。 这个远程文件,但是,是密码保护。 当这些文件在同一台计算机上时,它工作正常。 但是,当通过networking进行testing时,它会提示我input密码,就好像它是一个循环故障一样。 也就是说,当它提示我的时候,即使我取消了,它仍然会使用密码给出的密码来完成。 Private Sub Workbook_Open() Application.DisplayAlerts = False Set DATES = Workbooks.Open("Shareddrivepath\test.xlsx", password:="test") Range("G2:H27").Copy ThisWorkbook.Sheets(1).Range("C2:D27").PasteSpecial Range("J2:K27").Copy ThisWorkbook.Sheets(1).Range("G2:H27").PasteSpecial Range("A1:E21").Copy ThisWorkbook.Sheets("SET").Range("A1:E21").PasteSpecial ThisWorkbook.Sheets(1).Activate DATES.Close Application.DisplayAlerts = True End Sub 有什么我失踪,可以立即加载密码,或将不得不被链接到打开时调用另一个子? 我也试过只是单元格连接,它仍然需要/请求密码开始。

总结dynamic条件

我有一个Excel文件,其中有一些列。 Excel是我的银行账户。 D列是date ,而不是一天,即一周的日子。 我想一些所有的列中有相同的date,并将其插入新的cell .ex:一个星期,我应该有7个总和。 这里是来自工作表的一些可能的数据。 date(Column D) Money(Column K) Sum of same date(Column N) 1396/1/1 2300 1396/1/1 1000 3300 // some of the same date 1396/1/2 1200 1396/1/2 320 1550 // some of the same date Excel函数有可能吗? 我需要一个subroutin吗?

VBA写函数和返回值

我正在尝试在另一个子例程中调用子例程,并希望返回一些值。 但是,它似乎没有回报任何价值。 我怎么会写这个函数? 代码如下: Sub tickersymbolchange() Dim RSTA_ISIN, RSTA_Currency, RSTA_Ticker As String For Each rng In r ticker_wo_equity = Replace(rng.Value, " Equity", "") Exchangecode = Right(ticker_wo_equity, 2) Select Case Exchangecode Case "PO", "L3", "B3", "S2", "TQ", "SS" 'MsgBox "I am in PO" Call getRSTA_POL3B3S2TQSSIXEB(ticker_wo_equity, RSTA_ISIN, RSTA_Currency, RSTA_Ticker) 'Get ISIN from Rsta If IsEmpty(RSTA_ISIN) Then rng.Offset(0, […]

excel vba在特定情况下调用多个子例程

如果我有以下代码: Select Case Number Case 1: Call Subroutine1() Case 2: Call Subroutine2() Case 3: Call Subroutine3() Case 4: Call Subroutine4() Case 5: Call Subroutine5() Case 6: Call Subroutine6() End Select 我想在case 1中调用几个子例程: 如何做呢? 最好的,美国