Cuestión : Pegando valores en VBA con una sola cotización doble - Excel

Tengo un pequeño pedazo de código de VBA que intente copiar a partir de una gama a otra usar la selección de la gama y entonces selection.copy, seleccionando una célula de blanco y un activesheet.paste.   Esto trabaja la mayor parte del tiempo, excepto si tengo una célula con datos del texto en ella y comienza con “y no tiene una conclusión”, la operación de la goma no trabaja correctamente.  Aparece tomar valores de las células más allá de la célula que ofende con el solo “y añadirlo todo junto. class= del

Respuesta : Pegando valores en VBA con una sola cotización doble - Excel

cuál la causa es yo no está segura pero el arreglo aparece ser no cerrar la fuente hasta después de la goma.

observar que esto importa todos los formatos que pueden no ser lo que usted quiere.  utilizar PasteSpecial si no querer los formatos.
Goma de Selection.PasteSpecial: =xlPasteValues, operación: =xlNone, _ de SkipBlanks
       : El =False, transporta: =FalseU

He vuelto a trabajar el ImportCode un pedacito para utilizar el libro de trabajo me opongo directo

eg. fijar b = Workbooks.open (el fileIn)

(ive retitulado la rutina y la entrada [arameter pues intento no utilizar los nombres que podrían coincidir con un nombre definido. apenas mi capricho.)
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:
Función ImportData (fileIn como variante)
    'Propósito:    Importar los datos del archivo de fuente seleccionado en este archivo. quitar la información del duplciate
    '            en lengüetas dropdown.
    'Realces necesarios:
    '   1. verifica el formato del libro de trabajo de la fuente para asegurarse de que esté en el mismo formato.
    
    'Application.ScreenUpdating = falso
    
    'Este libro de trabajo
    Amortiguar a como libro de trabajo
    'Libro de trabajo de la fuente
    B dévil como libro de trabajo
    
    Ca dévil como gama
    Cb déviles como gama
    Wsx dévil como hoja de trabajo
    Ur dévil como gama
    Senior dévil como secuencia
    
    
    'archivo = FunctionGetFileName (archivo)
    'Si no IsFileOpen (archivo) entonces
    
    Fijar a = ThisWorkbook
    'Archivo de Application.Workbooks.Open
    '
    
    Fijar libros de trabajo de b = de Workbooks.Open (fileIn   ) los '(el archivo)
    Con b
    'Hacer todas las hojas de trabajo visibile
        Para cada wsx en b.Worksheets
        
            wsx. Visible = verdad
        Wsx siguiente
    
    Extremo con
    
    b.Sheets (“detalle”). Activar
    
    'Quitar la fila del jefe de gama.
    Fijar los Cb = la gama (“página”). Compensación (1, 0). Volver a clasificar según el tamaño (gama (“página”). Rows.Count - 1, gama (“página”). Columns.Count)
    
    'Gama (“página”). Selecto
    Cb. Selecto
    
    Selection.Copy
    
    'Ahora manejar la lengüeta del detalle añadiendo a los datos existentes
    ¿'Cómo manejar la gran cantidad de datos sobre el sujetapapeles?
    'Necesitar utilizar otro método además de la copia al sujetapapeles especialmente para la gran cantidad de datos.  Quizá
    ¿'fila por fila?
    'Considerar usar la gama de Detailsource como entrada
    
    a.Sheets (“detalle”). Activar
    
    Amortiguar el lc como número entero
    
    'Intentar ir a la fila siguiente de la gama de página.
    lc = gama (“página”). Fila + gama (“página”). Rows.Count
    Células (lc, 2).Select
    'Fijar los Cb = la gama (“página”). Compensación (1, 0). Volver a clasificar según el tamaño (gama (“página”). Rows.Count - 1, gama (“página”). Columns.Count)
    
    'Gama (“página”). Selecto
    'Cb. Selecto
    ActiveSheet.Paste
    'Selection.Paste
    'Células (lc, goma 2).PasteSpecial: =xlPasteValues, operación: =xlNone, _ de SkipBlanks
            : El =False, transporta: =False
    
    
    Hojas (“detalle”). Activar
    Application.CutCopyMode = falso
    Application.ScreenUpdating = verdad
    
    b.Close (falso)

    'Terminar si

Terminar la función
Otras soluciones  
 
programming4us programming4us