我有一个问题有关的方法打破东西分开。我得到这个的Excel电子表格提供了数据,我需要做一个报告。它很简单和直截了当,但是有一个特定的一部分,它是给我一些悲伤。

在Excel电子表格有一列,用于列出"参与方"在一个柱。这通常是大约12人的名字使用逗号分隔,但也有orgID在括号后面:

乔史密斯(DIV32),john doe(DIV12),罗杰*安德鲁斯(DIV14,DIV67,DIV01),等等

我需要打破这些成单列,这样,他们将各个领域一旦我进他们进入访问。我知道如何"文本,列"在Excel中,但是这一获得搞砸了的时候 jon doe (DIV13,DIV54,等等),已经超过一个分部。

不知道该如何做到这一点的访问,但很想知道。

任何人有任何一个excel式,或者访问的方法,为此请?

有帮助吗?

解决方案

我假设你进这个进入数据库。如果不是,它可能是更加容易,如果你这样做,即使是暂时的;和重做的每一个时间你有运行的报告

你是要结束有三个表格表示这种情况

  1. 会转移到楼(人)
  2. theOrganisation
  3. thePartyOrg

会转移到楼与有身份列

theOrganisation将有它自己的身份柱

thePartyOrder将有它自己的身份柱,一个会转移到楼,一个用于theOrganisation

只要你想来表示一缔约方带来的成员和组织,你必须要确保该缔约方存在/为创建;该组织的存在/为创建和母鸡创建一个项目在thePartyOrg表这点在两个。

因为这种连接的信息存储为文本内的一个单列,它可能是一个简单的第一阅读它的所有成临时表格和随后分析,列在VBA

其他提示

这里的一个解决方案:

我写的,它取代了strReplace strFind字符串中出现的所有功能,但只有当strFind括号内发生。所以,你可以替换所有的“”通过其他的东西(例如‘*’)字符,然后运行Excel的文本列,然后更换‘*’的使用‘’一次。

Function replace_paren(strSource As String, strFind As String, strReplace As String) As String
    ' Within strString, replaces any occurrence of strFind with strReplace *IF* strFind occurs within parentheses '

    Dim intOpenParenIndex As Integer
    Dim intCloseParenIndex As Integer

    Do
        intOpenParenIndex = InStr(intCloseParenIndex + 1, strSource, "(")
        intCloseParenIndex = InStr(intOpenParenIndex + 1, strSource, ")")
        If intOpenParenIndex = 0 Then
            Exit Do
        End If

        Mid(strSource, intOpenParenIndex, intCloseParenIndex - intOpenParenIndex) = Replace(Mid(strSource, intOpenParenIndex, intCloseParenIndex - intOpenParenIndex), strFind, strReplace)
    Loop

    replace_paren = strSource

End Function

因此,步骤是:

1)该宏复制到一个模块中的Excel工作簿

2)假设你的字符串是在A列在B列中,设置功能,以取代这样的逗号。

= replace_paren(A1, “”, “*”)

3)填充公式向下列

4)复制并粘贴列值

5)使用Excel中的文本以列来解析使用列“”作为分隔符

6)再次使用replace_paren由 “”

取代的 “*” 所有出现
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top