Tag: macros

如何结束所有运行的Excelmacros和Excel函数?

我目前有一个主要的macros调用一堆函数。 基本上: Sub main() 'Long code Call init End Sub Private Function init() 'Long Code End Function 其中一些代码片段很长,需要一些时间来处理,这并不是很好,因为我经常在这里和那里testing代码段。 我知道多次按Esc结束一个macros的macros,并将所有我的代码到主Sub主()工作正常。 所以我的两个问题是: 如果我从主分区调用一个函数,主分区是继续运行,还是等待函数的返回信号? 有没有办法让我用一个按键来停止所有的辅助和function? 目前看来,虽然主要的子结束了,当我垃圾邮件esc,被调用的function继续运行。 干杯!

多个范围对于Excel VBA中的每个循环

我有一个表格,下面的数据。 Category | Amount | Daily Charges | Misc Charges | Vendor Charges ———— |———–| ————–|————–|——————- Daily Charges |500,000.00 | | | ————–|———–|—————|————–|——————- Misc Charges | 500.00 | | | ————–|———–| ————–|————–|——————- Vendor Charges| 50,000.00 | | | 我需要使用macros填写第3栏(每日收费),第4栏(杂项费用)和第5栏(供应商费用)。 Category | Amount | Daily Charges | Misc Charges | Vendor Charges ———— |———–| ————–|————–|——————- Daily […]

使用macros中的Max函数来调整图表的垂直轴

我正在尝试使用macros中的Max函数来使我的图表垂直轴自动调整到单元格范围内的最高数字。 我已经开始了一个不工作的macros,但是下面的macros是我所要做的。 任何帮助深表感谢。 ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).MaximumScale = Application.WorksheetFunction.Max(Range("D26:D100"))

使用LastRow复制粘贴范围

我有一个问题,如何从一个特定的范围复制到指定的FirstRow到LastRow,如果从A7向前,直到LastRow行有数据。 如果从A7到LastRow有数据,则H6:J6的公式应该从H7:J7公式粘贴到LastRow。 现在问题是,如果从A7开始,行是空的,它将复制H5:J5的公式。 是否有我可以使用的代码,以便如果A7之前是空的,根本不复制公式? 也许把FirstRow定义为固定的或者其他的东西。 Sub CopyFormulaIF() Dim myLastRow As Long Dim myCol As Long Dim WB As Workbook Dim WS As Worksheet Set WB = ThisWorkbook Set WS = WB.Sheets("Tabelle1") 'Screen update in 0 seconds Application.ScreenUpdating = 0 With WS myLastRow = .Range("A" & .Rows.Count).End(xlUp).Row End With For myCol = 8 To 10 Cells(6, […]

Excel Ctrl-C使用许多macros在系统文件中变慢

我工作在一个完全基于excel的系统中,涉及到很多的VBAmacros,问题是每当打开所有macros的文件时,Ctrl-C会让计算机思考2秒,然后让我继续并粘贴。 装载圈出现了。 如果我反而按下Excel主页选项卡上的复制button,没有加载,它复制并立即准备好粘贴。 只有带有macros的文件是打开的,并且导致它不仅发生在文件中,而且发生在任何打开的其他工作簿中。 按下Ctrl C时不调用macros。 从简单地使用快捷方式而不是按下菜单中的button,可以减慢拷贝的速度? 更新:这似乎与任何键盘快捷键发生。

在Excel中使用VBA复制粘贴

我是vba代码的初学者,我有2个工作簿让说“reportPageImpression.xlsx”和“testCloseWork.xslx”。 目前我可以通过点击“更新”button从报告页面获取数据到testcloseworkbook。 所以现在我正在尝试做什么,当再次点击更新button时,值将会在1月16日(新的列),依此类推。 在这里我的代码 Option Explicit Private Function GetValueFromClosedWorkbook(path, file, sheet, ref) Dim arg As String 'Let's check whether the file exists If Right(path, 1) <> "\" Then path = path & "\" If Dir(path & file) = "" Then GetValueFromClosedWorkbook = "File Not Found" Exit Function End If 'We create the argument arg = […]

VBA在行select中使用单元格值

我有一个简单的macros,复制excel工作表中的最后一行,并进一步插入文档。 目前macros只复制一行,但我想能够select复制多less行。 我的数据被中间拆分为空行,因此使用A500 End(xlUp)和A2 End(xlDown) Dim i As Integer i = Range("F1").Value Range("A500").End(xlUp).Offset(1).Select ActiveCell.Rows("1:3").EntireRow.Copy Range("A2").Select Selection.End(xlDown).Offset(1).EntireRow.Select Selection.Insert Shift:=xlDown Application.CutCopyMode = False 我添加了Rows("1:3")来select三行,但是如何使用存储在F1中的数字来select要复制的行数呢? 我尝试了Rows("1:i")但我知道它不是那样的工作。 任何指导将有助于谢谢你。

如何在Excel中使用具有数据操作的macros在多行中求相同的值

当谈到macros时,我很新手,需要你的帮助。 我需要帮助创build一个macros来将相同的值的多行相加到一个单元格中。 这是我正在寻找的 Project # Impacted LOB Hrs 1111 Operation 500 1111 Operation-IT 1000 1111 Marketing 5000 1111 Marketing-IT 1000 2222 Operation- IT 100 2222 Operation 200 2222 Marketing 200 2222 Marketing-IT 5000 我期待的是以下几点: PROJECT IT HOURS NON IT HOURS 1111 2000 5500 2222 5100 400 下面的代码我有,但问题是我没有得到总计与每个项目的一行 Sub First_Macro() 'Dont display delete button: Application.DisplayAlerts = […]

基于映射表的VBAmacros更新单元

我想基于我在另一个文档上的映射表更新列表中的单元格。 每个月,我都会得到一份清单,我需要这样做。 映射表将是不变的,但源数据会改变,所以我会有这样的东西 Column A Column B Name Description Test1 Test for SO Test2 Test2 for SO … Test100 Test100 for SO 我将有一个相应的映射表,我希望macros来评估下面的映射表的列A中的每个单元格,并更新到映射表的第二列(这是不同的工作表)的值,是一个方法来做到这一点? Column A Column B Name Real Name Test1 Fund1 Test2 Fund2 … Test100 Fund100 基本上,数据选项卡(第一张)的最终输出是: Column A Column B Name Description Fund1 Test for SO Fund2 Test2 for SO … Fund100 Test100 […]

如何在Excel中添加多个语句如果(条件1)然后(closures窗口)和(End Sub)

我创build了一个macros复制特定的单元格并将其粘贴到新窗口(Excel)中。 我试图在粘贴数据之后在macros中添加一个If Then语句,如果一个特定的单元格是空白的(比方说A2),我希望macrosclosures该窗口并结束macros。 我已经尝试了下面的代码,但它给了我编译错误:块如果没有结束IF 。 Windows("Data.xlsx").Activate Rows("13:18").Select Selection.Copy Windows("Data Paste.xlsx").Activate Range("A1").Select ActiveSheet.Paste If ActiveSheet.Range("A2").Value = "" Then ActiveWindow.Close End Sub End If Range("A2:A6").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 为了更清楚,我需要的是; 第一行13:18从“DATA.xlsx”复制并粘贴到“Data Paste.xlsx”中,然后检查单元格A2是否为空,如果是,则closures“Data Paste.xlsx”窗口并停止macros运行。 如果A2单元格不是空的,我想要macros继续而不closures窗口,并继续下面的代码: Range("A2:A6").SpecialCells(xlCellTypeBlanks).EntireRow.Delete 'Rest of the code 请find我的解决scheme。