Tag: 语法

在vlookup中使用input框的结果

我有一些与VBA有关的经验,但通常会被语法等绊倒。 这是我目前正在尝试做的,我不明白: 我创build了一个input消息来询问用户他们正在查看的月份。 然后我想用一个vlookup公式中的input框的结果,我似乎无法弄清楚。 这是我迄今为止的代码: Dim Mnth As String Mnth = InputBox("Enter what month it is", "", "DO NOT ABBREVIATE") 'Open the appropriate file and tab Windows("Resource Tracking Kroger-MP.xlsm").Activate Sheets("Tables").Select Range("g14").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(Mnth, 'Tables'!C2:c4, 2, False)" 下面是使用上面的macros进入单元格的公式:= VLOOKUP(Mnth,Tables!$ B:$ D,2,FALSE)而不是使用单词Mnth,我需要它使用实际的月份 任何帮助深表感谢!!!!

语法/循环错误

我正在编写一个嵌套的循环来运行我有一个表的每个单元格(行,然后列)。 每个单元格都有一个不同的“组合”,它必须相等,如果它与我在另一个工作表上引用的值相匹配,它将从同一行取一个值(在Analysis工作表中指定),并将其返回到此表中。 这是我的代码。 我在更大的If语句中遇到错误。 任何帮助表示赞赏。 谢谢! 更新的代码,除了if语句中的最后一个“And …”之外的所有作品。 没有它,代码运行,但不正确(由于显而易见的原因)。 当我把它收回来,excel冻结,它永远不会结束运行。 请帮忙。 私人小组Worksheet_Change(BYVAL目标作为范围) Dim i,j,k,m,n As Long 工作表(“图表数据”)范围(“C6:DR10000”)。值=“” j = 3 Do Until Worksheets("Chart Data").Cells(4, j).Value = "" For i = 4 To Worksheets("Chart Data").Cells(Rows.Count, "A").End(xlUp).Row k = i + 3 m = i + 2 n = 1 ThisWorkbook.Sheets("Running Avg Log").Activate ' If the current […]

创builddynamic范围并存储命名范围

我在工作表(“模型”)中生成范围A. 我将这些值移到工作表(“数据”),以便我可以开始存储所有这些数据。 我将有另一个选项卡(“SheetC”),显示存储的数据中的两个用户select的范围。 例如从第1天开始的范围A和从第2天开始的范围A.在移动数据以存储在“数据”中的过程中,我想将其放置在最后一个的下面。 我有一个在“SheetC”中引用的计数器,每当新的数据放在表单(i)中时,计数器就会增加。 理想情况下,我希望将“数据”中的每个范围A都命名为不同的范围,因此当用户select某个范围时,我可以通过调用它来简单地显示该范围,而不必在存储的数据中查找值,抵消。 Dim rngData_Total_a As Range Dim rngData_Total_b As Range Dim i As integer i = Sheets("SheetC").Range("AJ3").Value Set rngData_Total_a = Sheets("Model").Range("R14:BH270") Set rngData_Total_b = Sheets("Data").Range(Cells(3 + 270 * i, 3), Cells(3 + 257 * (i + 1), 3)) rngData_Total_b.Value = rngData_Total_a.Value 我不断收到应用程序/对象定义的错误。 我们可以简单地设置一个范围吗? 还是有更有效的方法来做到这一点? 理想情况下,我也想要一个dynamic范围名称,以便rngData_Total_b更改它的名称与每个新的范围。 基本上这个过程将复制我预先定义x个范围的数字作为不同的名称和“数据”中的不同位置,考虑到我不知道我将在那里存储的范围的数量。 谢谢 安东尼

MS Excel:dynamic使用结构化/表格引用

假设Sheet1的Table1具有colA , colB列和irrelevant列。 (当然,我真正的桌子有更多的列。) 在Sheet2 ,列A有这样的: colA colB 我希望我的工作表的列B具有在其行中引用的列的中位数,所以现在我的Sheet2看起来像: AB colA =MEDIAN(Table1[colA]) colB =MEDIAN(Table1[colB]) 很显然,在列B的公式中不能完全引用列名是好的,但是我不确定如何使列B中的结构化引用指向列A中的string。 提前致谢!

如何select具有不同文件结尾名称的打开的Excel文件

我有一个ExcelmacrosJobs in Lab.xlsx查找特定的文件名Jobs in Lab.xlsx并复制到其他macros文件。 但是,在某些情况下,文件命名可能会更改为Jobs in Lab (0 – 195).xlsx 。 如何将Excel左语法实现到下面的VBA中? Sub Test() Windows("Jobs in Lab").Activate End Sub

Sum函数引用列号VBA

我需要通过Sum函数中的数字来引用列(即列B = 2,C = 3,E = 5等) 我试过这个代码,但它没有奏效(ColN是从列表框索引中读取的列号) Range("M5") = WorksheetFunction.Sum(Range(ColN& "2" : ColN&"5"))) '(F2:F5) for example 我还希望使用formulaR1C1,这个函数需要应用于其余的行(即下一个单元格将是F3:F6等的总和) 所有帮助解决这个问题,将不胜感激。

Ubound(Array)的语法,其中数组是范围的联合

我曾经有我的数组定义为数组=“范围”。 由于这个问题,我已经将我的数组重新定义为2列的并集。 不幸的是,语法Ubound(Array,dimension)现在抛出一个错误。 如果有人可以解释语法如何与我的新定义一起工作,那将非常感激。 这是定义数组的代码: Sub define_array_5(Array_1) Dim wsh As Worksheet Dim range1 As Range Dim range2 As Range Dim finalrange As Range Dim a As Integer Dim finalrow As Integer ' define array finalrow = Range("a1").End(xlDown).row Set range1 = Range(Cells(1, 1), Cells(finalrow, 1)) Set range2 = Range(Cells(1, 5), Cells(finalrow, 5)) Set finalrange = Union(range1, […]

VB的Excel相当于IF x == y或者x == z那么

在python我会写: if x == y or x == z: #do something 我怎样才能写在Excel中的VB? 这是我实际上在做什么: lang = Left(objFile.Name, 4) For Each LangCode In Split("1030,1053,1044,1035", ",") #do something 但是,这不正确地返回“1033333”为真所以我想更加明确。

子程序'Test'中的语法错误

我在VBA中有以下子function: Sub test() index_match_array(Range("D5").Value,Range("BZ:BZ").DataSeries,"Hardware",1,2) End Sub 这调用了开始的函数: Option Explicit Function index_match_array(loookup As String, table_array As Range, criteria_search As String, criteria_line_add As Integer, return_line_add As Integer) As String() Dim lookup_array() As String Dim result_array() As String … … index_match_array = result_array End Function 当我编译时,我得到错误信息: 编译错误:语法错误 我怀疑这是与第二个参数,范围一,但我不知道?

循环运行到特定的列

我正在尝试将此代码更改为仅从第3列到工作簿中较远的某个列。 现在,我正在为语法如何改变而留下一个空白,以便让我可以做到这一点。 谢谢! For chartdatacol = 3 To Worksheets("Chart Data").Cells(Rows.Count, 2).End(xlUp).row