1. 程式人生 > >vba 兩個表 信息合體一個表格

vba 兩個表 信息合體一個表格

字段名 效果 代碼 情況 跳過 fun count 單元格 size

1 把Excel某一區域的內容讀入到數組中:

Dim strArray() As Variant

Dim wk_data As Variant

Set wk_data = Sheets("Sheet1")

strArray = wk_data.Range("A1:CV100").Value

 

2 把數組的內容寫入到Excel中

wk_data.Range("A1").Resize(UBound(strArray, 1), UBound(strArray, 2)).Value = strArray

  vba的強大在於 規範 文件名wookbooks- 1工作表名sheets ,2工作表名sheets ,3工作表名sheets ,n工作表名sheets

1字段名 21字段名 3字段名 n字段名

最大行 最大列

循環 +遍歷 +判斷+分割

操作 復制 粘貼 改變屬性

1.1.1 方法1:
ActiveSheet.UsedRange.Rows.Count
ActiveSheet.UsedRange.Columns.Count
缺點:有時可能會比實際數大一些,原因是如果你把最後幾行(列)數據清除後(非整行或整列刪除),用這個命令仍返回未清除前的值。就是說現在雖然是空的,但是你曾經用過也算你的。
1.1.2 方法2:
ActiveSheet.Range("A65535").End(xlUp).Row
ActiveSheet.Range("IV1").End(xlToLeft).Column
可以簡寫為:
ActiveSheet.[A65536].End(xlUp).Row
ActiveSheet.[IV1].End(xlToLeft).Column
缺點:只能計算出一列(行)的最後一個單元格所在的行(列)數。本例是只返回A列最後一個單元格所占的行數。
1.1.3 方法3:
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column
缺點:在工作表進行對刪除或清除操作時也會變得比實際情況大。
1.1.4 方法4:
ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
缺點:在工作表進行對刪除或清除操作時也會變得比實際情況大。
1.1.5 方法5:
Application.CountA(ActiveSheet.Range("A:A"))
Application.CountA(ActiveSheet.Range("1:1"))
只能統計一列(行)的實際使用情況,得到的不一定是最後一行(列)的位置。方法2的數值比此方法大時,說明在A列的數據間有空白未填寫的單元格。
1.1.6 方法6:
ActiveSheet.Cells.Find(What:="*",After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
ActiveSheet.Cells.Find(What:="*",After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
效果同方法2
1.1.7 方法7:
MaxRow =Application.Evaluate("=MAX((A1:A1048576<>"""")*ROW(1:1048576))")
1.1.8 方法8:
Me.Cells(1048576,1).End(xlUp).Row’Excel2007
Me.Cells(1048576,1).End(xlUp).Row’Excel2003
這一代碼返回工作表中最後一個包含非空內容的單元格所在的行號,而不管這一單元格與Me.Cells(1,1)之間是否有包含空白內容的單元格。而且這一方法將跳過或者說忽略被隱藏的單元格,比如,數據表有連續的50行,如果第48到50行隱藏了,則這一程序只返回47。
1.1.9 方法9:
Sheets("sheet1").Cells(Rows.Count,1).End(3).Row
r = .Cells(.Rows.Count,1).End(xlUp).Row
1.1.10 方法10:
利用 Worksheet.Rows屬性
Private Sub DisplayRowCount()
MsgBox("This worksheetcontains " & _ Me.Rows.Count.ToString() & " rows.")
End Sub
以上方法中比較常用的是方法1和方法2。
評分

  

相同的元素

function  FilterData(a,b)
        {   //循環判斷數組a裏的元素在b裏面有沒有,有的話就放入新建立的數組中
            var result = new Array();
            var c=b.toString();
            for(var i=0;i<a.length;i++)
            {
              if(c.indexOf(a[i].toString())>-1)
              {
              result.push(a[i]);
              }      
            }
            
return result; } 不同的元素 a一定是比b數組長,然後找出a中和b不同的。即a去掉b以後的 function FilterData(a,b) { //循環判斷數組a裏的元素在b裏面有沒有,有的話就放入新建立的數組中 var result = new Array(); var c=b.toString(); for(var i=0;i<a.length;i++) { if(c.indexOf(a[i].toString())==-1) { result.push(a[i]); } } return result; }

vba 兩個表 信息合體一個表格