Question : Collant des valeurs dans VBA avec des guillemets simples - Excel

J'ai un petit morceau de code de VBA qui essaye de copier d'une gamme à l'autre using le choix de gamme et puis le selection.copy, choisissant une cellule de cible et un activesheet.paste.   Ceci fonctionne le plus souvent, excepté si j'ai une cellule avec des données des textes dans elle et elle commence par « et n'a pas une fin », l'opération de pâte ne travaille pas correctement.  Il semble prendre des valeurs des cellules au delà de la cellule offensante avec le célibataire « et les apposer toutes ensemble. class= de

Réponse : Collant des valeurs dans VBA avec des guillemets simples - Excel

ce que la cause est moi ne suis pas sûre mais la difficulté semble être de ne pas clôturer la source jusqu'à après la pâte.

noter que ceci importe tous les formats ne pas être qui peuvent ce que vous voulez.  employer PasteSpecial si ne pas vouloir les formats.
Pâte de Selection.PasteSpecial : =xlPasteValues, opération : =xlNone, _ de SkipBlanks
       : Le =False, transposent : =FalseU

J'ai retouché l'ImportCode un peu pour employer le cahier de travail objecte directement

par exemple placer b = Workbooks.open (le fileIn)

(ive retitré la routine et l'entrée [arameter car j'essaye de ne pas employer les noms qui pourraient s'opposer avec un nom défini. juste mon caprice.)
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 :
Fonction ImportData (fileIn comme variante)
    'But :    Importer les données à partir du fichier source choisi dans ce dossier. enlever l'information de duplciate
    '            sur les étiquettes dropdown.
    'Perfectionnements requis :
    '   1. vérifient le format du cahier de travail de source pour s'assurer qu'il est dans le même format.
    
    'Application.ScreenUpdating = faux
    
    'Ce cahier de travail
    Obscurcir a comme cahier de travail
    'Cahier de travail de source
    Faible b comme cahier de travail
    
    Faible Ca comme gamme
    Faibles Cb comme gamme
    Faible wsx comme feuille de travail
    Faible ur comme gamme
    Faible Sr comme corde
    
    
    'dossier = FunctionGetFileName (dossier)
    'Sinon IsFileOpen (dossier) puis
    
    Placer a = ThisWorkbook
    'Dossier d'Application.Workbooks.Open
    'Autrement
    
    Placer cahiers de travail de b = de Workbooks.Open (fileIn   ) des '(le dossier)
    Avec b
    'Rendre toutes les feuilles de travail visibile
        Pour chaque wsx dans b.Worksheets
        
            wsx. Évident = rectifier
        Prochain wsx
    
    Extrémité avec
    
    b.Sheets (« détail »). Activer
    
    'Enlever la rangée d'en-tête de la gamme.
    Placer les Cb = la gamme (« page »). Excentrage (1, 0). Remettre à la côte (gamme (« page »). Rows.Count - 1, gamme (« page »). Columns.Count)
    
    'Gamme (« page »). Choisi
    Cb. Choisi
    
    Selection.Copy
    
    'Manipuler maintenant l'étiquette de détail par le rattachement aux données existantes
    'Comment traiter le grand nombre de données sur le presse-papiers ?
    'Devoir employer une autre méthode sans compter que la copie au presse-papiers particulièrement pour le grand nombre de données.  Peut-être
    'rangée par rangée ?
    'Considérer using la chaîne de Detailsource comme entrée
    
    a.Sheets (« détail »). Activer
    
    Obscurcir le LC comme nombre entier
    
    'Essayer d'aller à la prochaine rangée de la chaîne de page.
    LC = gamme (« page »). Rangée + gamme (« page »). Rows.Count
    Cellules (LC, 2).Select
    'Placer les Cb = la gamme (« page »). Excentrage (1, 0). Remettre à la côte (gamme (« page »). Rows.Count - 1, gamme (« page »). Columns.Count)
    
    'Gamme (« page »). Choisi
    'Cb. Choisi
    ActiveSheet.Paste
    'Selection.Paste
    'Cellules (LC, pâte 2).PasteSpecial : =xlPasteValues, opération : =xlNone, _ de SkipBlanks
            : Le =False, transposent : =False
    
    
    Feuilles (« détail »). Activer
    Application.CutCopyMode = faux
    Application.ScreenUpdating = rectifient
    
    b.Close (faux)

    'Finir si

Finir la fonction
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us