草庐IT

vba'for'功能未完成周期

我在一张名为“优化”的表格中有一系列列。其中一些列仅包含一个条目(“失败”),而另一些则包含一组整数。我需要循环浏览这些列,并删除其中失败的列。我使用的代码如下:Subdelete_fails()Dimempty_column1AsIntegerDimiTimesAsLongDimiRepeatAsIntegeriTimes=Application.WorksheetFunction.CountA(Sheets("Optimisation").Range("1:1"))empty_column1=1ForiRepeat=1ToiTimesIfSheets("Optimisation").Cel

在VBA中使用“然后”之后使用和操作员?

我的代码的一部分如下:Fori=2ToLastStep1IfInStr(1,strg,Delim&ws2.Range("G"&i).Value&Delim,vbTextCompare)Then_ws2.Range("G"&i).EntireRow.DeleteAndi=i-1Debug.PrintiNexti该代码在没有和部分的情况下运行良好。我有一个错误,因为i=i-1。我怎么说条件是否正确这样做AND那?看答案如果您想执行多个操作,以防万一If满足条件,然后您需要将每个操作放在单独的线路中,然后关闭If...带着EndIf.尝试以下代码:IfInStr(1,strg,Delim&ws2.R

与VBA结合日期

我正在比较W和AA列中的两个日期。情况是如果AA&GT列;W,然后应该打印诺克。如果Aa<=W列,则应打印出确定。我的代码正常工作。但是问题不足。例如,我有一个日期01.09.2017在W列和AA中的日期,根据公式可以,但它可以打印NOK。谁能告诉我,这种情况有什么问题。我希望它在VBA中做。SubCompare1()DimiAsLongDimlngLastRowAsLongDimwsAsWorksheetSetws=Sheets("BW")WithwsFori=2To591If.Cells(i,27).Value=""Then.Cells(i,28).Value="N/A"ElseIf

在VBA中的Yyyymmdd串

我有以下可能的模式字符串我想转换成Yyyymmdd(20160602)VBA。我已经尝试了格式(“20160602”,“00000000”)。但它给出了00201662'possiblepattern2016060220166220160622016602同时,我不想遵循类型的长期代码DimtrgetYmdFromAsStringtrgetYmdFrom="2016602"IfLen(trgetYmdFrom)=6ThentrgetYmdFrom=Mid(trgetYmdFrom,1,4)&"0"&Mid(trgetYmdFrom,5,1)&"0"&Mid(trgetYmdFrom,6,1)E

mysql - 将 dbFailOnError 添加到 CurrentDb.Execute 无法更新表

长期潜伏者,第一次海报。我有一个通过5.1ODBC驱动程序连接到Access2010的mySQL表。我正在尝试更新mySQL表并好奇地在CurrentDb.ExecutestrSQL的末尾添加dbFailOnError以防止表更新但不会引发任何错误。我的VBA编辑器设置为在出现所有错误时中断。例程中的所有错误处理均已注释以供测试。如果我使用CurrentDb.ExecutestrSQL或DoCmd.RunSQLstrSQL,表会更新。此外,mySQL表有一个索引。SQL字符串:strSQL="UPDATEclientsSET[DateLastAccessed]="&lngDateAcc

mysql - 什么时候应该关闭记录集?

假设我将使用下面的子程序运行各种查询。我是否应该每次都设置和关闭记录集?还是应该set和close连同我的连接(cn)?如果我关闭连接,我是否需要关闭我的recorset?SubQueryPC(ByRefReturnArray()AsVariant,COBAsDate,PCAsVariant,FileCodeAsString)DimsrtQryAsString,tmpArray()AsVariantSetrs=CreateObject("ADODB.Recordset")srtQry="whatever"Setrs=cn.Execute(srtQry)IfNotrs.EOFThentm

mysql - 字段列表中的排序顺序错误

数据结构如下:ID|Name|CID---------------------------------1|x|2|a|123|a|124|c|5|x|6|[|当我执行普通查询时SELECTDISTINCTNameFROMtableWHEREISNull(CID_ID)ORDERBYName;[1]SELECTDISTINCTNameFROMtableORDERBYName;[2]我在MySQLCLI中得到[1]的预期结果:|Name------------|c|x|[对于查询[2]:|Name------------|a|c|x|[所以我的问题是:当我打开记录集并将其绑定(bind)到

mysql - 使用交替颜色对 Excel 字段中的重复条目进行颜色编码

我已经从MySQL数据库中提取了一个重复项列表到Excel工作表中。此excel显示我们有重复项(~1,900),有时基于excel表的单个字段有三次条目。例如:100191001910048100481006010060我怎样才能为重复的对着色,以便它们可以很容易地可视化为每对的一对。基本上我想用交替的颜色填充每个重复的对,这样我就可以很容易地看到这些对。 最佳答案 您所说的过程称为“重复strip”。一对Scripting.Dictionary对象应该很容易处理这个问题。SubcolorDuplicateColor2()Dimd

mysql - VBA 连接到 MySQL 数据库

我暂时尝试将我的Excel电子表格连接到本地托管的MySQL数据库。我正在使用WAMPSERVER。这是我的VBA代码:DimoConnAsADODB.ConnectionPrivateSubConnectDB()SetoConn=NewADODB.ConnectionoConn.Open"DRIVER={MySQLODBC5.1Driver};"&_"SERVER=localhost;"&_"DATABASE=test;"&_"USER=root;"&_"PASSWORD=;"&_"Option=3"EndSub我通过phpMyadmin创建了我的数据库“测试”...运行代码时出现错

从访问表格中获取形状控制名称以传递VBA值

我有一个超过500个形状的访问表格,每个形状代表特定的记录。每个形状都有Box1,Box2等的控件名称。使用的不是捕获此控件名称。如果我可以捕获名称,我可以从中删除“框”,并获取用于该记录的数字。如果我使用命令按钮而不是形状,我可以使用下面的代码并将其完成我想做的事情,但是也有代码会更改形状的颜色,以便在命令按钮上不起作用。PrivateSubBox2_Click()DimstrActiveCtlAsStringstrActiveCtl=Replace(Me.ActiveControl.Name,"Box","")DoCmd.GoToRecordacDataForm,"Form1",acGoT