Tag: vba

将范围对象传递给VBA中的一个子对象

尝试创build一个采用范围单元格并计算该列中单元格的平均值的子例程。 但是我得到错误:对象必需 我怎样才能纠正这一点? Sub test() Dim rg As Range Set rg = ThisWorkbook.Worksheets(1).Range("B1") ColumnAverageToTop (rg) End Sub Sub ColumnAverageToTop(rg As Range) 'calculates the average of the data in column and puts it above the data Cells(1, rg.Column).End(xlDown).Offset(1, 0).Value = Application.WorksheetFunction.Average(rg.Columns(rg.Column)) End Sub

复制工作簿中的对象

我有一个工作簿,根据工作簿中另一个工作表的某些input指标显示一个小彩色框。 我想要在工作簿中的附加工作表中显示这些小彩色框。 有没有办法在工作表中复制一个形状,以便颜色仍然会随着指标而更新,而不是再次将代码用于单独的工作表? 我基本上想要在另一个工作表中显示带有彩色框/箭头的文本框。

单元格值更改时自动运行VBAmacros

我有很多工作表的大型工作簿。 每个工作表都包含用户input和计算的组合,并且大多数链接到其他工作表上的input或输出。 该工作簿还包含一个包含一些自定义VBA函数的模块。 我试图自动goalseek位于未选中/非活动工作表上的单元格,如果用户更改活动工作表上的值,该值与链接到另一个表单上的计算input,我希望goalseek。 一个例子: “Sheet7”上的单元格A1包含一个数字,该数字是基于同一工作表的单元格A2,A3和A4中的值计算结果的“猜测”(例如,A1是A2 + A3 + A4的名义结果) 。 单元格A2,A3和A4是来自另外三个工作表的计算结果的链接。 “Sheet7”上的单元格A5是A2 + A3 + A4的实际结果,它可能与A1中的值不匹配。 单元格A6是A6中的计算结果与A1中的值之间的差异,我将A6的目标search值确保为A5中的计算值始终与A1中的“硬编码”值匹配。 即使在发生更改时未select“Sheet7”,我也希望在任何时候A2,A3或A4的值都会在“Sheet7”上发生变化。 A2可以链接到“Sheet2”,A3可以链接到“Sheet14”,A4可以链接到“Sheet9”。 如果用户select了“Sheet2”,并更改了某些改变链接到“Sheet7”上的单元格A2的值,我希望这个macros运行(原因是“Sheet7”A1值链接回其他一些工作表而且保持更新或整个工作簿中的整个计算链都失败很重要)。 如果select了“Sheet7”,并且更改了A2,A3或A4,所有macros示例/post都find了工作,但是如果select了其他工作表并进行更改,链接值将更改,macros将不会运行我尝试过的所有代码变体 我对整个“VBA体系结构”没有很好的处理,所以有人可以用可理解的术语和方向来提供我需要做的或者将代码添加到模块或工作表(或两者) 。

如果范围存在,则为文本Excel VBA

我想testing一个范围是否存在能够创build以下模式: if not exists(r) then MsgBox("Range is missing") end if Function exists(r as range) as boolean End function 这里是我想testing一个范围的例子,如果它存在与否 Call RangeExists(lob.ListColumns("Leverera utt").DataBodyRange) 我怎样才能做到这一点?

自动填充配方VBA

寻找一些VBAfunction的帮助 我有两张纸上需要执行索引匹配的数据。 每次运行比较数据大小都会有所不同。 我编写了VBA调用数据并填充两张表,但运行比较是造成问题。 我已经创build了下面的函数,它的运行没有错误,但没有填充单元格中从J2开始到J范围结束的公式。 Sub FormulaFill() Dim strFormulas(1 To 1) As Variant With ThisWorkbook.Sheets("Export Worksheet") strFormulas(1) = "=INDEX('sheet1'!E:E,MATCH('Export Worksheet'!A2,'sheet1'!A:A,0))" .Range("J:J").FillDown End With End Sub 任何帮助将不胜感激。 w ^ 应用更新的代码后的图像

工作簿名称作为variables

一直试图谷歌这一段时间,不能让我的语法正确的问题! 基本上,目前我有WorkbookA.xlsm和我的代码直接引用“WorkbookA.xlsm” 当我的工作簿被分发时,不是每个人都留下相同的名字,并且会导致下标超出范围的错误 答案可能非常明显,但是我怎样才能将工作簿声明为variables或类似呢? thisworkbook.name? 我的产品打开一个单独的工作簿,从中提取数据,然后将其放入我的工作簿 – 我担心这个工作簿或类似可能会导致问题,如果不止一个是开放的? 对不起,这个愚蠢的问题,但希望你能帮助!

使用VBA添加validation列表不稳定

在SetWS工作表中,我在Worksheet_Deactivate中有以下代码: Private Sub Worksheet_Deactivate() Dim ActWS, SetWS As Worksheet Set ActWS = ActiveWorkbook.Sheets("Activity_Plan") Set SetWS = ActiveWorkbook.Sheets("Settings") With ActWS.Range("J11:J20").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:="=Settings!$AS$10:$AS$20" ' .IgnoreBlank = True .InCellDropdown = True End With ' End Sub 在RepWS工作表(我只创build几个图),我在Worksheet_Activate中有以下代码: Private Sub Worksheet_Activate() Application.EnableEvents = False Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim ScopeWS, RepWS, ActWS, […]

根据date复制某些值

我有2个工作簿: annual.xlsm和annual.xlsm 。 从第4行和第A列开始,在annual.xlsm是年份的date。 在monthly.xlsm是从E列开始的当前月份的date(下一个date在列G中)。 现在,如果date相对应,我想从annual.xlsm一个单元格从date复制到annual.xlsm行。 例如: monthly.xlsm在E1中的date是27.01.2016,在单元格E4中是Mike的值。 在annual.xlsm ,A8中的date是27.01.2016。 如果这是真的,请在annual.xlsm E4从annual.xlsm复制到annual.xlsm 。 monthly.xlsm在G1中的date是28.01.2016,单元格G4中是Mary的值。 在annual.xlsm ,A9中的date是28.01.2016。 如果是这样的话,在annual.xlsm G4从annual.xlsm复制到DR9。 我已经尝试过公式,但我无法想象一个公式来跳跃细胞。

Excel VBA迭代范围对象数组

我正在尝试遍历范围引用的数组。 Dim labels As Collection Set labels = New Collection Dim myLabel As Range Set myLabel = FindDataRow(mySearchterms, CurrentWorksheet) ' <- Returns a Range labels.Add (myLabel) 后来我试图遍历这些范围引用和下面的代码不起作用:我得到一个运行时错误424.我明白,一个对象是必需的,但是如何标签成为一个string。 Dim label As Variant Set label = Nothing For Each label In labels Debug.Print (label & " in: " & label.Row) Next label 我已经尝试过下面这个其他的答案在这里,但因为我是新的VBA在Excel中,我不明白如何在数据结构中放置范围引用,然后检索/引用访问label.Row ,我想要上面(在点它说“~~”做任何你想要做的范围在这里“) 我的理解到目前为止, labels是一个集合,并不关心其中的项目types。 所以我添加了Range引用。 […]

Excel VBA。导航错误对象必需

下面的脚本给了我一个424对象所需的错误。 我已经testing了rCell.Value的输出,它会生成一个URL,但是当它试图导航到它的时候会导致错误。 如果我把一个stringreplacerCell.Value代码工作正常。 并执行该URL。 Dim MyHTML_Element As IHTMLElement Dim MyURL As String Dim rCell As Range Dim rRng As Range Set rRng = Sheet1.Range("A1:A6") For Each rCell In rRng Set MyBrowser = New InternetExplorer MyBowser.Silent = True MyBowser.navigate = rCell.Value MyBowser.Visible = True 我是否需要将该variables转换为string?