Tag: excel 2003

如何在Excel 2003中使用VBA对混合date和一般格式数据的列进行sorting

首先,如果我在最好的VBA练习中犯了很多错误,我很抱歉。 特别是我一直在学习这个项目的语言,可能有很多事情我做错了,如果我让任何人感到惭愧,那么很抱歉。 接下来是问题。 我想按照date排列一个范围(保存在一列中),就像在sorting“看起来像一个数字的数字的东西”时工具菜单上的sorting函数一样。 该列是英国本地语言date和文本string混合在“一般”格式的单元格中,基本上只是date。 换句话说,像这样简单的事情: Range(rngFirstCell, rngLastCell).Sort Key1:= 2, Order1:=xlAscending, _ DataOption1:=xlSortTextAsNumbers, Header:=xlYes 应该做的伎俩。 事实上,我认为唯一的例外是录制的代码使用xlGuess作为Header,并且包含OrderCustom的值为1,正是macros录制器产生的。 不用说,我试过logging的代码,结果相同。 问题是,而不是得到: Type Date gen 01/3/2008 date 02/4/2008 date 17/4/2008 gen 25/7/2009 我得到: Type Date date 02/4/2008 date 17/4/2008 gen 01/3/2008 gen 25/7/2009 由于这在更高版本的Excel中起作用,因此我认为这是2003年的一个bug。我当前的解决scheme是首先将列中所有单元格的NumberFormat属性设置为“d / m / yyyy”,然后迭代在它们上面,用CDate(Cell.Value)的结果replace每个值。 它使sorting工作。 由于表单和VBA之间有太多的交互(从我读过的很慢),所以还需要10秒来重新格式化一个包含20个条目的列。 因为我需要按代码sorting的一些数据集完全有可能是数百个单元,我需要更快一些。 任何人都可以build议一个更好的方式做到这一点 为了清楚起见,我目前使用的代码看起来非常像: Range(rngFirstCell, rngLastCell).Columns(2).NumberFormat = "d/m/yyyy" Dim intIndex […]

我怎样才能轻松地知道我的Excel 2007代码将在早期的Excel版本中工作?

我在Excel 2007中logging了一个使用了TintAndShade和PatternTintAndShade的macros。 我不知道, 这两个函数不支持在早期的Excel版本,但感谢StackOverflow,我有一个解决方法 。 或者我想。 有(显然)其他function2003年不支持。我说“显然”,因为我没有访问Excel 2003,但一位同事告诉我,macros不起作用。 我开始要求他告诉我macros的失败,然后解决(迭代),但这是一个缓慢的过程。 有更容易的方法吗? 有没有例如在Excel 2007中的新命令列表或简单的兼容性检查?

根据不同的文件将行从一个文件复制到另一个文件

我有一个Excel文件,其中包含2列: Words和Definition (3000行)。 我有另一个Excel文件,其中只包含没有定义的words (200行)。 我怎样才能只提取那些在第二个Excel文件(200行)的那些行(单词和定义 – 从3000)? 基本上我想过滤这些。 在SQL中,我会写 Select * from table1 where table1.words=table2.words 我如何在Excel中实现这个? 请把程序也给我

使用VBA根据列B的值重置列A中的值

我有一张看起来像这样的表格,但方式更复杂: Product count real count Rake Complete -1 n/a Rake Head 2 =B3+B2 Rake Handle 2 =B4+B2 Bike Complete -5 n/a Bike Handle 10 =B6+B5 Bike Wheel 25 =B7+B5+B5 Bike Frame 90 =B8+B5+B6 公式工作,看起来像这样: Product count real count Rake Complete -1 n/a Rake Head 2 1 Rake Handle 2 1 Bike Complete -5 n/a Bike […]

如何通过在另一列中固定特定的对应参考值来打印列的输出值

ABC x=value at C corresponding to A at 0.5 0 5655 0 0.25 6757 545 0.5 7856 5776 0.75 9866 5644 请帮我在B列的某个地方(比如说B2)打印这个值(如'x')。 在列A中应该select总是对应于0.5的列C的值,并且取决于所给出的input步骤,0.5值将从一个地方波动到另一个地方。 所以无论如何,最终的输出必须始终是对应于0.5的值

使用OleDb从Excel中select具有多个范围的列

我目前的需求是我需要从一个单一的查询Excel表(DUMMY.xls)中select多个范围,并把它放到一个DataTable(fooData1):正如你可以从上面的图像看到我有从A到F列。我筛选出从A到B和从D到F到单个数据表(fooData1)的列。 生成的数据表的内容应该是这样的: NAME ID Date Hobby COLOR DEEPAK 1 Coding Black ASTHA 2 Singing Red GAURAV 3 Dancing Blue BHAVESH 4 6/29/2007 Painting Green 我的代码是这样的: 并在执行查询时出现以下错误 “SQL语句结束后发现的字符” DataTable fooData1 = new DataTable(); System.Data.OleDb.OleDbConnection dbConnection = new System.Data.OleDb.OleDbConnection (@"Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data Source=C:\Dummy.xls;" + @"Extended Properties=""Excel 8.0;HDR=Yes;"""); dbConnection.Open(); try { string strSql = "SELECT * FROM [Sheet1$A:B] […]

Excel:从单元格公式中调用VBA库函数?

是否有可能调用VBA库函数,例如。 VBA.Strings (在VBA.Strings )直接从单元格公式中写入包装函数?

VBA 2003中的本地非静态variables错误太多?

您好,我在VBA Excel 2003中获取MS访问数据库的插入查询编译错误。如何克服这个错误? Public Function InsertSheetCurrent() Static intK As Integer Call clsadodb.ConnecttoDatabase objRSet.CursorType = adOpenStatic For intK = 0 To WSCurrentHCV.Range("A10:HN223").Rows.Count – 1 clsadodb.objCon.Execute "insert into tblCurrentHCV(fldVersion,fldCountry,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220)" & _ " values('" & WSCurrentHCV.Cells(intK + 10, 1).Text & "','" & WSCurrentHCV.Cells(intK + 10, 2).Text & "','" & WSCurrentHCV.Cells(intK + 10, 3) & "','" & WSCurrentHCV.Cells(intK + […]

每个任意分组计数平均值

我在Excel中有一个2列,将Age与一定的值相匹配:例如, 34 107.8 22 5 22 97 45 76.5 46 16 我需要创build一个表/图表/数据透视表,显示每个任意组的平均值。 我们说: BRACKET VALUE AVG 0-39 … 40 … 41 … 42-60 …

我的countif只能使用硬编码的date标准,而不是dynamic的,因此= today() – 365

我正在使用Excel 2003 SP3。 我试图计算一年以上的列中的date,所以我试图: =COUNTIF(Library!G9:G10000,"<=today()-365") 但有一点的时候它给了我0有趣的是,如果我在1年前硬编码,那么: =COUNTIF(Library!G9:G10000,"<=16/05/2012") 那么它工作得很好。 不知道我的范围是否重要(Library!G9:G10000)包括一些文本值,例如“未知” 希望有人能帮忙。