Tag: 全局variables

VBA嵌套循环variables赋值

我需要遍历我的Excel电子表格的行,如果一列中存在特定值,请将同一行中另一列的值复制到电子表格的另一部分。 我还需要根据第一列中的值来对另一列中的值进行求和。 总的来说,我的代码运行良好,除了一小部分。 为了避免迭代和复制具有重复值的行,我想在下面的嵌套循环语句中重新设置“x”(我的行计数器)的值,这个行的最低行是我得到的。 在这种情况下,我想“x”迭代到“GoDown”的值,假设“GoDown”大于0.但是,当我这样做时,我的代码挂起。 当我避免最后的“if … else”语句,并使用“x = x + 1”时,它工作正常。 谁能告诉我发生了什么事情,或者如何解决? 它挂在第二个范围指定的声明,这似乎是一个奇怪的地方。 非常感谢您的帮助,如果我能澄清一下,请告诉我。 Sub NumberCheck() Dim x As Integer Dim GoDown As Integer Dim n As Integer x = 2 n = 0 Do Until Range("D" & x) = "" If Range("D" & x) > 50 Then Range("F" & x).Value = Range("A" & […]

重复在variables范围内循环的脚本

我几乎不知道苹果脚本,并会感谢您的帮助! 这是我正在做的事情: 编写一个脚本,将excel单元格复制并粘贴到单词中,然后自动将该文件保存为pdf。 然后,脚本会自动执行Apple邮件程序,发送一堆基于Excel电子表格的电子邮件(带有附件)。 到目前为止,我已经编写了一个脚本来完成所有这些工作,除非我无法让脚本重复下一个单元格的过程,直到完成所有的单元格和电子邮件。 这是我到目前为止: tell application "Microsoft Excel" activate set empName to string value of range "A4" of active sheet set myVal to string value of range "P4" of active sheet tell application "Finder" set theFile to "Macintosh HD:users:deve:desktop:C.dotx" tell application "Finder" open file theFile set the clipboard to myVal tell application "Microsoft […]

无法使用variablesinput

背景 当我试图在大量的csv数据文件上运行一系列技术指标时,我将3个macros打包在一起, macros1:运行分析>打开特定文件夹中的每个单独的Excel文件 macros2:DoWork>运行macrosmacros3:IndicatorData>使用技术指标公式打开macros1打开的单个csv文件。 代码如下。 问题/发行 问题出在macros观3 [指标数据] 在填充列H时,通过vba有select地使用从同一工作簿中find的名为ControlPanel的工作表捕获值的variablesEMAWindow1的值。 在前两行公式中 ActiveSheet.Range("h1") = EMAWindow1 & " Day EMA" ActiveSheet.Range("h" & EMAWindow1 + 1) = "=average(R[-" & EMAWindow1 – 1 & "]C[-3]:RC[-3])" 你会发现macros观工作正在完善。 然而 当你到达第三线时 ActiveSheet.Range("h" & EMAWindow1 + 2 & ":h" & LastRowCheck).FormulaR1C1 = "=R[0]C[-3]*(2/(EMAWindow1 + 1)) + R[-1]C[0] * (1-(2/(EMAWindow1 + 1)))" 出于某种原因,EMAWindow1的值不被使用,并被视为一个文本造成的错误,并导致#NAME? 因为公式无法用里面的文本计算。 随后的代码遇到同样的问题。 […]

Excel VBA; 用户窗体,运行在不同的文本框值的一段代码

晚上好,stackoverflow社区。 UPD: 关于我的真实情况的一些信息。 这里是我使用的UserForm: 在我的用户表单中,Duration / CED文本框命名为Dur1-Dur6,S / C Frequency文本框命名为sc1-sc6。 这个macros的主要目的是复制一个表格模板,并以S / C频率为基础,用所需的公式将其粘贴到主表格中。 完整的代码我有: Private Sub OkButton_Click() TheStart: Dim FirstRow2 As Integer: FirstRow2 = 18 'set the number value of first row with formulas Dim LastRow2 As Integer: LastRow2 = Range("L1000").End(xlUp).Row Dim AQCol As Integer: AQCol = 11 'set the number value of AQ column […]

VBA获取多个用户的Dropbox文件path(Mac和PC)

我在一个特定的Dropbox文件夹中创build了一个Excel文件,该文件夹使用一个macros将date和时间戳添加到文件的某些选项卡,然后将其保存到同一个文件夹中。 在PC上,path是类似的 C:\Users\MyName\Dropbox\Daily History\ 而在MAC上就是这样的 Macintosh HD: Users: meadowbrook: Documents: 我唯一能想到的就是使用CELL(“filename”)并将其dynamic存储为variables。 有没有一种方法可以保存文件所在的目录,而无需在VBA中指定path?

Excel 2010 VBA – 使用variables的值作为另一个variables

编写VBA代码时,这是我遵循的做法。 我通常将无空格的工作表名称设置为variables名称。 例如,我有一个带有3个工作表的工作簿,其名称如下 1 – 控制 2 – 60瓦状态 3 – 60瓦状态Pvt Tbl 我通常以下列方式将工作表名称设置为工作表variables: Set wb = thisworkbook Set wsControl = wb.sheets("Control") Set ws60WStatus = wb.sheets("60 W Status") Set ws60WStatusPvtTbl = wb.sheets("60 W Status Pvt Tbl") 现在我想使这个dynamic的含义,我的代码应该遍历工作簿中的所有工作表,并将工作表名称不带空格存储到variables名称,如ws * 所以我到目前为止有以下代码: Sub GetwsNames() Set wb = thisworkbook Dim wsNames() i = 0 'Loop through the workbook and […]

使用variables在Excel VBA中按其编号声明工作表

晚上好。 我正在拼命写一些VBA代码。 Public TFOCUS As Integer ' Creates TFOCUS, which is the worksheet in focus Public RFOCUS As Integer ' Creates RFOCUS, which is the row in focus Public CFOCUS As String ' Creates CFOCUS, which is the column in focus Public RECORD As Integer ' Creates RECORD, wich is the row that is having […]

通过基本macros过滤掉原始数据报告

我正在尝试进行详细的过滤和删除,每天处理原始数据报告时要做的事情,并尽可能减lessfilter的数量,因为我只需点击一下button即可。 我相信我通过一个简单的录制的macros(见下面)完成了大部分工作,但是有时候我会删除某些项目。 看看代码,我相信这可能是因为macros正在应用filter时,它试图删除内容时寻找的起始行不固定。 所以我的问题是,我应该只使用基于当前持有filter的行的偏移​​值? 或者这样做不行? 当我删除标准“POR”“<> BGR”和“= Sunrise Earth”时,问题就出现了。我认为这是因为这些命令后面的select函数有一个variables行号,可能并不总是正确的 Sub ProgMisr() ' ' ProgMisr Macro ' ' Keyboard Shortcut: Ctrl+Shift+M ' Columns("A:A").Select Selection.Delete Shift:=xlToLeft ActiveWindow.ScrollColumn = 2 Range("I:I,K:K,L:L").Select Range("L1").Activate Selection.Delete Shift:=xlToLeft ActiveWindow.ScrollColumn = 1 Range("B6").Select Selection.AutoFilter ActiveSheet.Range("$A$6:$I$5761").AutoFilter Field:=2, Criteria1:="<>EHD*" _ , Operator:=xlAnd, Criteria2:="<>ESD*" Rows("7:7").Select Range(Selection, Selection.End(xlDown)).Select Selection.Delete Shift:=xlUp ActiveSheet.Range("$A$6:$I$1412").AutoFilter Field:=2 Range("F3").Select ActiveSheet.Range("$A$6:$I$1412").AutoFilter Field:=6, Criteria1:=Array( _ […]

如何在VBA中正确初始化全局单元格引用variables

在我的VBA项目中,我有许多模块和子目录中提到的单元格。 为了便于阅读,我已经通过以下方式声明并初始化一个variables给单元格引用: LowerBound = ThisWorkbook.Sheets("Rules").Range("B22").Value 我想在我的项目中只初始化一次这个variables,在这个实例中使用全局variables是否正确? 我发现许多材料build议这些应该避免(根据这个答案在VBA中初始化全局variables )。 如果这是不正确的,在整个项目中引用一个单元格时,最好的做法是什么。

Excel VBA中的variables和总和

为了减轻我的夏季无聊,我决定尝试制作一个Excel程序,根据所拥有的房产和在棋盘游戏中的房屋数量来追踪多less钱将要欠的人(我正在试验的一些新规则)。 我设置了电子表格,使每个属性都在自己的行中。 我想要Excel程序来做到这一点: 假设你正在看一个单元格。 那么,对于i = 1到10(因为我怀疑超过10个垄断者是可行的),如果右边的单元格的值是i,那么把你实际看到的单元格的值加到一个和对于我的球员。 我可以生成variablesvariablessum1,sum2,sum3,…,sum10吗? 然后我可以说一些类似的东西 sum'i'= sum'i'+ cell.Value 如果符合第2款的条件,则在for循环内? 更新:我已经试过这个代码,它在获得玩家1的总和。 然而,它给玩家1的所有玩家的总和,并且每当有人购买新的财产或升级当前的财产(我需要在每次更新时重新input公式)时更新是麻烦的。 Public Function monopolySum(i As Integer) As Variant Dim sum(1 To 10) As Variant, rng As Range, cell As Range For i = 1 To 10 sum(i) = 0 Next i Set rng = Range("C2:C29") For Each cell In rng For […]