-1

因此,我将 Sharepoint 日历中的数据导入 Excel 电子表格。有没有一种方法,每当我从 sharepoint 导入新数据时,它都会遍历 Sharepoint 提供的唯一 ID,并检查它是否已从传入的数据中删除?

那么根据系统中当前的数据检查新数据?

我想我必须做的是,在导入数据时,将数据存储在“临时”电子表格中,然后运行循环将临时表的 ID 与数据表进行比较,然后处理审计过程,然后更新临时到Data sheet,最后删除临时表。

我需要检查两个工作表的 ID 列。如果没有 ID,我需要从其余列中提取信息并将该记录导出到另一个电子表格

直到昨天才使用 VBA,我被分配了这个任务,谷歌上没有关于这个的资源。我知道需要做什么。只是不知道如何完成它。我需要比较C!在数据到 C!在临时。如果数据中有一个单元格,那不是临时的,我需要将整行导出到审计工作表。

有人知道什么命令/宏对此有用吗?

' 公共子 Find_ID()

Dim old_id As Integer, new_id As Integer, oldRow As Variant, newRow As Variant
Dim old_mod As String, new_mod As String

oldRow = 2


Do While Trim(Sheets("Old Data").Range("C" & oldRow)) <> ""
    newRow = 2
    old_id = Trim(Sheets("Old Data").Range("C" & oldRow))


    Do While Trim(Sheets("New Data").Range("c" & newRow)) <> ""
        new_id = Trim(Sheets("New Data").Range("c" & newRow))
        'is new id the same as old id
            'if yes - we have a match, but now we want to compare the modified
                'if modified is a match, then we don't need to do anythying

                'if modified is not a match, we need to figure out what was changed
            'if no - then lets just go to the next line

        newRow = newRow + 1
    Loop


    oldRow = oldRow + 1


Loop'
4

1 回答 1

0

@floppityflip

如果您想从另一个工作表中的一个工作表中搜索某些内容(因为我想它们的顺序不会完全相同),您可以使用 find 函数并将其放入一个循环中。


像这样:

Sub Find()
'
' Find Macro
'

'
    Dim i As Integer
    i = 1
    Dim comparingVariable As String

    Do

        Sheets("Sheet1").Select           'YOUR FIRST SHEET

        Range("A" & i).Select

        comparingVariable = ActiveCell    'SET VARIABLE EQUAL TO ACTIVE CELL

        Sheets("Sheet2").Select

        On Error Resume Next              'IN CASE YOU DON'T FIND WHAT YOU'RE LOOKING FOR

        Cells.Find(What:=comparingVariable, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate                                        'PUT VARIABLE INTO FIND FUNCTION

        If Err.Number <> 0 Then                                                     'IF THERE WAS AN ERROR (WASN'T FOUND) HILIGHT CELL RED IN SHEET 1

            Sheets("Sheet1").Select
            ActiveCell.Interior.ColorIndex = 3

        End If


        i = i + 1               'ADDING TO ITERATOR

    Loop Until ActiveCell = ""

    Sheets("Sheet1").Select

End Sub

将此数据添加到 excel 文档中,然后在 excel 宏中使用我上面发布的代码:


表 1: 1 2 3 4 450 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

表 2:25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1


- 工作表 1 有 1 - 25 按升序排列,工作表 2 有 1 - 25 按降序排列,只是我在其中添加了 450 以检查它是否捕获了它找不到的东西。

-根据代码,如果在 sheet2 中找不到 sheet1 上的数字,则该数字将突出显示为红色(我想我应该澄清一下)。

希望这可以帮助!

于 2012-07-25T17:47:03.690 回答