Tag: switch statement

Excel VBA-创buildmacros来更改单元格颜色并根据单元格值调用其他macros

我正在尝试编写一个调用不同的macros和更改单元格颜色的macros。 所以,如果整个列D(D4:D446)中的一个或多个单元格等于某个值,则这个macros将调用与该值相关联的单独的macros。 换句话说,我想要的是,例如,如果F7:F446列中的任何/所有单元格(D7:D446)=“1000ABC”,“1000EFG”或“1000HIJ”中的任何一个或多个单元格将变为红色向用户表明他们需要在F7:F446中单击该单元格,并且当用户单击列F中的该单元格时,它将调用已经创build的正确的macros。 例如:如果单元格D25 =“1000EFG”单元格F25将变为红色,并且当用户将光标移到单元格F25上并单击单元格F25时,它将把它们带到与值1000EFG相关的macros。 我已经创build了与这些特定值相关联的其他macros,我只需要F列中的单元格来改变颜色,并成为可点击的用户和点击时,调用一个特定的macros。 我将发布我在下面尝试的代码。 很感谢任何forms的帮助。 你们真棒,谢谢! Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range c = Range("D7:D446") For Each c In Intersect(ActiveCell, Range("D7:D446")) 'this is where the error is occuring Select Case c.Value Case "1000GP", "1000MM", "19FEST", "20IEDU", "20PART", "20PRDV", "20SPPR", "22DANC", "22LFLC", "22MEDA", "530CCH", "60POUBL", "74GA01", "74GA17", […]

消除“打开”variables定义工作簿3次?

有多个定义的范围,我从一个工作簿复制和粘贴到另一个。 我写的代码打开一个定义为variables的工作簿,复制某些单元格,切换到“thisworkbook”并粘贴单元格。 我想从作为variables定义的工作簿复制更多的单元格,但无法弄清楚如何“切换”。 我不想单独打开工作簿3次。 如何绕开.open线? 谢谢 Sub MDVwk1() 'turn off screen refreshing Application.ScreenUpdating = False 'pick the correct timesheet TimeSheetMDV1 = Application.GetOpenFilename 'Opens the workbook chosen for MDV week 1 Workbooks.Open TimeSheetMDV1 'Copies the project number cells and pastes them in the workbook under week 1 for MDV Range("B5:B100").Copy ThisWorkbook.Sheets("Mark").Activate 'Pastes the copied cells Range("B10").PasteSpecial […]

在C#中切换for循环

我从excel逐行阅读。单个列标题在第二行。 但数据从第四行开始。 我想首先检查列标题,并将第四行的值分别放到关联的模型属性中。 所以我想在for循环中使用case语句而不是if else检查。 但是它只是在第一个案件后才打破。 我知道这是有意的,但有没有其他更有效的方法? ListGroupMembershipUploadInput gl = new ListGroupMembershipUploadInput(); for (int rw = 4; rw <= ws.Dimension.End.Row; rw++) { //Dictionary<string, string> groupMembershipUploadDict = new Dictionary<string, string>(); int headerCol = 2; GroupMembershipUploadInput gm = new GroupMembershipUploadInput(); for (int col = ws.Dimension.Start.Column; col <= ws.Dimension.End.Column; col++) { string val = ws.Cells[headerCol, col].Value.ToString(); switch (ws.Cells[headerCol, […]

VBA RegEx Excel – 打开多个patern匹配

我想要search模式(D2,D3,D4,D5,T2,T3,T4)的function。 他们都给他们分配了数值,所以例如D5必须是2.4。 在Java中,我会使用switch语句,但是我对VBA很新,所以我不能把这个问题包裹起来。 这似乎很简单,但我想不出办法做到这一点。 在伪代码中会是这样的: if myRange.Value contains D4 result = 2.0 if myRange.Value contains T4 result = 1.6 等等 有没有办法用某种forms的正则expression式检查和VBA的switch语句等价呢? 谢谢

我如何简化这个VBA switch语句来不重复这么多的代码?

我正在写一个Excelmacros从1工作表复制信息并将其粘贴到另一个。 它必须search特定的文本string以确定要复制的右列,并且使用switch语句遍历各个列。 它一直到Z ,所以它是非常长的macros。 我也需要使用这个用于几个search条件,这使得macros太大。 这里是代码的摘录: Select Case True Case Range("A1").Value = "SearchTerm1" Sheets("ExportSheet").Select Range("A2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Template").Select Range("L2").Select ActiveSheet.Paste Case Range("B1").Value = "SearchTerm1" Sheets("ExportSheet").Select Range("B2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Template").Select Range("L2").Select ActiveSheet.Paste Case Range("C1").Value = "SearchTerm1" Sheets("ExportSheet").Select Range("C2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Template").Select Range("L2").Select ActiveSheet.Paste Case Range("D1").Value = "SearchTerm1" Sheets("ExportSheet").Select Range("D2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Template").Select […]