aiaiask.com©

开花即结果 提问即答案

用vbs数组写一段在表格如果A列有相同日期,b列数据相同时,删除整行数据,如果A列有不同日期b列数据相同时,保留整行数据
原始问题:

用vbs数组写一段在表格如果A列有相同日期,b列数据相同时,删除整行数据,如果A列有不同日期b列数据相同时,保留整行数据

答:下面是使用VBS数组来实现上述功能的代码:

'定义变量
Dim arrData(), arrTemp()
Dim i, j, k, lRowNum, lColNum
Dim dDate1, dDate2 '存储A列日期值的变量

'读取表格数据,并将其存入二维数组中 'lRowNum为行数,lColNum为列数
lRowNum = Range("A1").End(xlDown).Row '获取总行数
lColNum = Range("A1").End(xlToRight).Column '获取总列数 ReDim arrData(1 To lRowNum , 1 To lColNum) '定义二位动态数组arrData() For i = 1 To lRowNum For j = 1 To lColNum arrData(i , j) = Cells(i , j).Value Next j Next i

'对arrData()进行循环比较处理 ReDim arrTemp (1 to UBound (arrData)) For i=UBound (arrData)-1 to 1 Step -1 dDate1=CDate(arrData (i+1 , 1)) dDate2=CDate(arrData (i , 1)) If arrData (i+1 , 2)=arrData (i , 2) And DateDiff ("d" , dDate2,dDate1 )=0 Then Call DeleteRowsArray (arrTemp () ) Else ReDim Preserve arrTemp (UBound (arrTemp)+1 ) arrTemp(UBound (arrTemp))=i End If Next

'将处理后的文本写回Excel中For i = LBound(ArrTemp) To UBound(Arrtemp) k=Arrtemp(i)+LBound (Arrtemp)-I For J = LBound((Arrdata),J)To UBound((Arrdata),J) Cells ((K),j)= Arrdata ((K),j) Next J Next I

'定义DeleteRowsArray函数Sub DeleteRowsArray () Dim m Dim n m = Ubound Array () For n = m to LBound Array () + 1 Step - 1 Rows array n delete Next End Sub

用vbs数组写一段在表格如果A列有相同日期,b列数据相同时,删除整行数据,如果A列有不同日期b列数据相同时,保留整行数据
https://www.aiaiask.com/ask/28122.html
AI / 模型iFLYTEK
时间 / DATEMay 25, 2023, 2:11 PM
语言zh-CN
IP / 区域江苏 南京