Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在图纸的列和行中选择UsedRange 我的excel文件中有两张表,DTMGIS和DTMEdit DTMEdit工作表为空 我正在尝试对DTMGIS中的所有内容进行xopy,并仅将值粘贴到工作表DTMEdit_Vba_Excel - Fatal编程技术网

Vba 在图纸的列和行中选择UsedRange 我的excel文件中有两张表,DTMGIS和DTMEdit DTMEdit工作表为空 我正在尝试对DTMGIS中的所有内容进行xopy,并仅将值粘贴到工作表DTMEdit

Vba 在图纸的列和行中选择UsedRange 我的excel文件中有两张表,DTMGIS和DTMEdit DTMEdit工作表为空 我正在尝试对DTMGIS中的所有内容进行xopy,并仅将值粘贴到工作表DTMEdit,vba,excel,Vba,Excel,我不知道如何仅选择UsedRange并将其粘贴到DMTEdfit Dim ws As Worksheet Dim LastRow As Long, LastCoulmn As Long, Header As Long Header = 2 Set ws = ThisWorkbook.Sheets("DTMGIS") LastRow = ws.UsedRange.Rows.Count LastCoulmn = ws.UsedRange.Column.Count With ws.UsedRange

我不知道如何仅选择
UsedRange
并将其粘贴到
DMTEdfit

Dim ws As Worksheet
Dim LastRow As Long, LastCoulmn As Long, Header As Long
Header = 2
Set ws = ThisWorkbook.Sheets("DTMGIS")
LastRow = ws.UsedRange.Rows.Count
LastCoulmn = ws.UsedRange.Column.Count

With ws.UsedRange
    .Select
    .Copy
End With

试着这样做:

Sub CopyPasteValues()
    Dim ws1 As Worksheet, ws2 As Worksheet

    Set ws1 = ThisWorkbook.Sheets("DTMGIS")
    Set ws2 = ThisWorkbook.Sheets("DTMEdit")

    ws1.Range(ws1.UsedRange.Address).Copy
    ws2.Range("a1").PasteSpecial xlPasteValues
End Sub

低于该值的变化

  • 避免假设
    UsedRange
    从A1开始
  • 在不移动格式的情况下运行复制(如果您使用
    .copy
    则在末尾使用
    Application.CutCopyMode=False
代码


谢谢Soren你能告诉我什么是UsedRange.Address吗?没问题。返回给定工作表中使用范围的地址。在这种情况下,
DTMGIS
@SørenHoltenHansen
A1
中所用地址的地址可能不是第一次使用的
UsedRange
的开始sheet@brettdj这是个什么问题
UsedRange
返回范围,而不考虑范围中的第一个单元格。因为复制到A1的速度比复制基础工作表的速度快,而且A1可能不是源工作表中UsedRange的开始。
Sub FastCopy()
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Set ws1 = ThisWorkbook.Sheets("DTMGIS")
    Set ws2 = ThisWorkbook.Sheets("DTMEdit")
    ws2.Range(ws1.UsedRange.Address).Value = ws1.UsedRange.Value
End Sub