精华内容
下载资源
问答
  • VB6.0中,操作word,使用它强大的查找、替换、删除、复制、翦切功能。还可以把特定字符替换成图片。有了它你就可以使用数据库中的内容或图片文件替换word文件中的特定字符。 只要把下列内容复制到写字板中,...

      在VB6.0中,操作word,使用它强大的查找、替换、删除、复制、翦切功能。还可以把特定字符替换成图片。有了它你就可以使用数据库中的内容或图片文件替换word文件中的特定字符。

      只要把下列内容复制到写字板中,另存为SetWord.cls文件,然后在把它添加到工程中,就可以使用了。

    VERSION 1.0 CLASS
    BEGIN
      MultiUse = -1  'True
      Persistable = 0  'NotPersistable
      DataBindingBehavior = 0  'vbNone
      DataSourceBehavior  = 0  'vbNone
      MTSTransactionMode  = 0  'NotAnMTSObject
    END
    Attribute VB_Name = "SetWord"
    Attribute VB_GlobalNameSpace = False
    Attribute VB_Creatable = True
    Attribute VB_PredeclaredId = False
    Attribute VB_Exposed = False
    Private mywdapp As Word.Application
    Private mysel As Object

    '属性值的模块变量
    Private C_TemplateDoc As String
    Private C_newDoc As String
    Private C_PicFile As String
    Private C_ErrMsg As Integer

    Public Event HaveError()
    Attribute HaveError.VB_Description = "出错时激发此事件.出错代码为ErrMsg属性"
    '***************************************************************
    'ErrMsg代码:1-word没有安装 2 - 缺少参数  3 - 没权限写文件
    '           4 - 文件不存在
    '
    '***************************************************************

    Public Function ReplacePic(FindStr As String, Optional Time As Integer = 0) As Integer
    Attribute ReplacePic.VB_Description = "查找FindStr,并替换为PicFile所指向的图片文件,替换次数由time参数确定,为0时,替换所有"

    '********************************************************************************
    '    从Word.Range对象mysel中查找所有FindStr,并替换为PicFile图像
    '          替换次数由time参数确定,为0时,替换所有
    '********************************************************************************

    If Len(C_PicFile) = 0 Then
        C_ErrMsg = 2
        Exit Function
    End If

    Dim i As Integer
    Dim findtxt As Boolean

        mysel.Find.ClearFormatting
        mysel.Find.Replacement.ClearFormatting
        With mysel.Find
            .Text = FindStr
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchByte = True
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
       mysel.HomeKey Unit:=wdStory
       findtxt = mysel.Find.Execute(Replace:=True)
       If Not findtxt Then
            ReplacePic = 0
            Exit Function
       End If
       i = 1
       Do While findtxt
            mysel.InlineShapes.AddPicture FileName:=C_PicFile
            If i = Time Then Exit Do
            i = i + 1
            mysel.HomeKey Unit:=wdStory
            findtxt = mysel.Find.Execute(Replace:=True)
       Loop
       ReplacePic = i
    End Function

    Public Function FindThis(FindStr As String) As Boolean
    Attribute FindThis.VB_Description = "查找FindStr,如果模板中有FindStr则返回True"
    If Len(FindStr) = 0 Then
        C_ErrMsg = 2
        Exit Function
    End If
        mysel.Find.ClearFormatting
        mysel.Find.Replacement.ClearFormatting
        With mysel.Find
            .Text = FindStr
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchByte = True
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
       mysel.HomeKey Unit:=wdStory
       FindThis = mysel.Find.Execute
    End Function

    Public Function ReplaceChar(FindStr As String, RepStr As String, Optional Time As Integer = 0) As Integer
    Attribute ReplaceChar.VB_Description = "查找FindStr,并替换为RepStr,替换次数由time参数确定,为0时,替换所有"
    '********************************************************************************
    '     从Word.Range对象mysel中查找FindStr,并替换为RepStr
    '          替换次数由time参数确定,为0时,替换所有
    '********************************************************************************
    Dim findtxt As Boolean

    If Len(FindStr) = 0 Then
        C_ErrMsg = 2
        RaiseEvent HaveError
        Exit Function
    End If

        mysel.Find.ClearFormatting
        mysel.Find.Replacement.ClearFormatting
        With mysel.Find
            .Text = FindStr
            .Replacement.Text = RepStr
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchByte = True
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
      

     If Time > 0 Then
        For i = 1 To Time
             mysel.HomeKey Unit:=wdStory
             findtxt = mysel.Find.Execute(Replace:=wdReplaceOne)
             If Not findtxt Then Exit For
         Next
         If i = 1 And Not findtxt Then
             ReplaceChar = 0
         Else
            ReplaceChar = i
         End If
     Else
         mysel.Find.Execute Replace:=wdReplaceAll
     End If
    End Function

     

    Public Function GetPic(PicData() As Byte, FileName As String) As Boolean
    Attribute GetPic.VB_Description = "把图像数据PicData,存为PicFile指定的文件"
    '********************************************************************************
    '     把图像数据PicData,存为PicFile指定的文件
    '********************************************************************************
    On Error Resume Next

    If Len(FileName) = 0 Then
        C_ErrMsg = 2
        RaiseEvent HaveError
        Exit Function
    End If

    Open FileName For Binary As #1

    If Err.Number <> 0 Then
        C_ErrMsg = 3
        Exit Function
    End If

    '二进制文件用Get,Put存放,读取数据
    Put #1, , PicData
    Close #1

    C_PicFile = FileName
    GetPic = True

    End Function


    Public Sub DeleteToEnd()
    Attribute DeleteToEnd.VB_Description = "删除从当前位置到结尾的所有内容"
    mysel.EndKey Unit:=wdStory, Extend:=wdExtend
    mysel.Delete Unit:=wdCharacter, Count:=1
    End Sub

    Public Sub MoveEnd()
    Attribute MoveEnd.VB_Description = "光标移动到文档结尾"
    '光标移动到文档结尾
    mysel.EndKey Unit:=wdStory
    End Sub

    Public Sub GotoLine(LineTime As Integer)
    mysel.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=LineTime, Name:=""
    End Sub

    Public Sub OpenDoc(view As Boolean)
    Attribute OpenDoc.VB_Description = "打开Word文件,View确定是否显示Word界面"
    On Error Resume Next

    '********************************************************************************
    '     打开Word文件,并给全局变量mysel赋值
    '********************************************************************************

    If Len(C_TemplateDoc) = 0 Then
        mywdapp.Documents.Add
    Else
        mywdapp.Documents.Open (C_TemplateDoc)
    End If

        If Err.Number <> 0 Then
            C_ErrMsg = 4
            RaiseEvent HaveError
            Exit Sub
        End If
       
        mywdapp.Visible = view
        mywdapp.Activate
        Set mysel = mywdapp.Application.Selection
        'mysel.Select
       
    End Sub

    Public Sub OpenWord()
    On Error Resume Next

    '********************************************************************************
    '     打开Word程序,并给全局变量mywdapp赋值
    '********************************************************************************

        Set mywdapp = CreateObject("word.application")
        If Err.Number <> 0 Then
            C_ErrMsg = 1
            RaiseEvent HaveError
            Exit Sub
        End If
    End Sub

    Public Sub ViewDoc()
    Attribute ViewDoc.VB_Description = "显示Word程序界面"
    mywdapp.Visible = True
    End Sub

    Public Sub AddNewPage()
    Attribute AddNewPage.VB_Description = "插入分页符"
    mysel.InsertBreak Type:=wdPageBreak
    End Sub

    Public Sub WordCut()
    Attribute WordCut.VB_Description = "剪切模板所有内容到剪切板"
        '保存模板页面内容
        mysel.WholeStory
        mysel.Cut
        mysel.HomeKey Unit:=wdStory
    End Sub

    Public Sub WordCopy()
    Attribute WordCopy.VB_Description = "拷贝模板所有内容到剪切板"
        mysel.WholeStory
        mysel.Copy
        mysel.HomeKey Unit:=wdStory
    End Sub

    Public Sub WordDel()
        mysel.WholeStory
        mysel.Delete
        mysel.HomeKey Unit:=wdStory
    End Sub

    Public Sub WordPaste()
    Attribute WordPaste.VB_Description = "拷贝剪切板内容到当前位置"
    '插入模块内容
    mysel.Paste
    End Sub

    Public Sub CloseDoc()
    Attribute CloseDoc.VB_Description = "关闭Word文件模板"
    '********************************************************************************
    '     关闭Word文件模本
    '********************************************************************************
    On Error Resume Next


        mywdapp.ActiveDocument.Close False

    If Err.Number <> 0 Then
        C_ErrMsg = 3
        Exit Sub
    End If

    End Sub

    Public Sub QuitWord()
    '********************************************************************************
    '     关闭Word程序
    '********************************************************************************
    On Error Resume Next

        mywdapp.Quit
       
    If Err.Number <> 0 Then
        C_ErrMsg = 3
        Exit Sub
    End If
    End Sub

    Public Sub SavetoDoc()
    Attribute SavetoDoc.VB_Description = "保存当前文档为FileName指定文件"
    On Error Resume Next

    '并另存为文件FileName

    If Len(C_newDoc) = 0 Then
        C_ErrMsg = 2
        RaiseEvent HaveError
        Exit Sub
    End If

        mywdapp.ActiveDocument.SaveAs (C_newDoc)
       
        If Err.Number <> 0 Then
            C_ErrMsg = 3
            RaiseEvent HaveError
            Exit Sub
        End If

    End Sub


    Public Property Get TemplateDoc() As String
    Attribute TemplateDoc.VB_Description = "模板文件名."
    TemplateDoc = C_TemplateDoc
    End Property

    Public Property Let TemplateDoc(ByVal vNewValue As String)
    C_TemplateDoc = vNewValue
    End Property

    Public Property Get newdoc() As String
    Attribute newdoc.VB_Description = "执行CloseDoc方法时,将模板文件另存为此文件名指定的新文件.如果不指定,在执行CloseDoc方法时,将产生一个错误"
    newdoc = C_newDoc
    End Property

    Public Property Let newdoc(ByVal vNewValue As String)
    C_newDoc = vNewValue
    End Property

    Public Property Get PicFile() As String
    Attribute PicFile.VB_Description = "图像文件名"
    PicFile = C_PicFile
    End Property

    Public Property Let PicFile(ByVal vNewValue As String)
    C_PicFile = vNewValue
    End Property

    Public Property Get ErrMsg() As Integer
    Attribute ErrMsg.VB_Description = "错误信息.ErrMsg代码: 1-word没有安装 2-缺少参数 3-没权限写文件 4-文件不存在"
    ErrMsg = C_ErrMsg
    End Property

    展开全文
  • 在许多情况下,使用PDF文档时,您需要进行更改:复制,粘贴,拖放特定的PDF内容,例如文本,图像,表格和图表。只要您要处理文档的一小部分,就可以在同一PDF文件中手动执行这些选项。但是,如果您想在更复杂的情况...

    在许多情况下,使用PDF文档时,您需要进行更改:复制,粘贴,拖放特定的PDF内容,例如文本,图像,表格和图表。只要您要处理文档的一小部分,就可以在同一PDF文件中手动执行这些选项。但是,如果您想在更复杂的情况下执行编辑选项,例如创建数字签名,合并多个PDF文档或重新处理PDF文件中的所有文本,该怎么办?

    Aspose.Words for .NET是功能丰富且功能强大的Word API,它提供了所有基本以及扩展的MS Word Mail Merge功能。它使您可以在Windows窗体,ASP.NET Web应用程序或任何.NET / .NET Core应用程序中生成信函,信封,报告,发票和其他类型的文档。

    在本文中,将展示如何在不使用MS Word或Office Interop的情况下使用C#或VB.NET执行MS Word邮件合并。本文由以下部分组成:

    • 使用C#在Word文档中执行邮件合并
    • 使用XML数据源的邮件合并
    • 合并字段的自定义格式
    • 区域合并邮件
    • 嵌套邮件合并区域

    >>Aspose.Words for .NET已经更新至v20.7,Aspose.Words for .Net更新至新版本v20.7,添加了新节点以处理多节结构化文档标签,改进了SmartArt冷渲染的性能,RevisionOptions类扩展了新的属性,点击下载

    邮件合并是自动生成报告,信件,信封,发票和其他类型的文档的方式。MS Word中的邮件合并允许您创建包含合并字段的模板文档,然后使用数据源中的记录填充这些字段。要了解邮件合并,假设您必须向十个不同的人发送一封信,并且仅姓名和地址字段将被更新。在这种情况下,只需创建字母的模板,然后通过使用数据源填充名称和地址合并字段来动态生成字母。

    可以从任何数据源(例如XML,JSON或数据库)中获取邮件合并的数据。就Aspose.Words for .NET而言,可以使用ADO.NET支持的任何数据源。可以将数据加载到DataSet,DataTable,DataView或值数组中。

    邮件合并模板是包含合并字段的文档。执行“邮件合并”时,这些字段然后用数据源中的数据填充。模板文档不需要是模板格式,可以是DOC / DOCX文档。这是您可以为邮件合并准备模板的方法。

    • 在MS Word中打开您的文档或创建一个新文档。
    • 将光标放在要添加合并字段的位置。
    • 从  插入  菜单中选择  字段  选项。
    • 从  字段名称  列表中,选择  MergeField。
    • 在字段名称中为合并字段输入名称,然后按  确定。
    • 保存文档。

    以下是示例模板文档的屏幕截图。

    Word处理控件Aspose.Words功能演示:使用C#或VB.NET在Word文档中进行邮件合并

    使用C#在Word文档中执行邮件合并

    准备好模板后,可以执行邮件合并以生成文档。以下是在上述模板上执行邮件合并的步骤。

    • 使用Document类加载模板文档。
    • 设置必需的邮件合并选项,例如Document.MailMerge.TrimWhitespaces。
    • 使用Document.MailMerge.Execute()方法执行邮件合并,并将数据源作为参数传递。
    • 使用Document.Save(String)方法保存生成的文档。

    下面的代码示例演示如何使用C#中的值数组执行MS Word邮件合并。

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_MailMergeAndReporting(); 
    // Open an existing document.
    Document doc = new Document(dataDir + "MailMerge.ExecuteArray.doc");
    
    // Trim trailing and leading whitespaces mail merge values
    doc.MailMerge.TrimWhitespaces = false;
    
    // Fill the fields in the document with user data.
    doc.MailMerge.Execute(
        new string[] { "FullName", "Company", "Address", "Address2", "City" },
        new object[] { "James Bond", "MI5 Headquarters", "Milbank", "", "London" });
    
    dataDir = dataDir + "MailMerge.ExecuteArray_out.doc";
    // Send the document in Word format to the client browser with an option to save to disk or open inside the current browser.
    doc.Save(dataDir);

    邮件合并后的Word文档

    Word处理控件Aspose.Words功能演示:使用C#或VB.NET在Word文档中进行邮件合并

    使用C#中的XML数据源执行邮件合并

    XML文件被广泛用于保存以及导入/导出数据。Aspose.Words for .NET还支持XML作为邮件合并的数据源。只需将XML读入DataSet对象并执行邮件合并。以下是我们将要使用的示例XML文件。

     

    下面的代码示例从XML数据源获取数据,并使用C#执行邮件合并。

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_MailMergeAndReporting(); 
    
    // Create the Dataset and read the XML.
    DataSet customersDs = new DataSet();
    customersDs.ReadXml(dataDir + "Customers.xml");
    
    string fileName = "TestFile XML.doc";
    // Open a template document.
    Document doc = new Document(dataDir + fileName);
    
    // Execute mail merge to fill the template with data from XML using DataTable.
    doc.MailMerge.Execute(customersDs.Tables["Customer"]);
    
    dataDir = dataDir + RunExamples.GetOutputFilePath(fileName);
    // Save the output document.
    doc.Save(dataDir);

    以下是将用XML数据填充的邮件合并模板。

    Word处理控件Aspose.Words功能演示:使用C#或VB.NET在Word文档中进行邮件合并

    以下是执行邮件合并后得到的Word文档的第1页。

    Word处理控件Aspose.Words功能演示:使用C#或VB.NET在Word文档中进行邮件合并

    合并字段的自定义格式

    .NET的Aspose.Words使您在执行过程中对“邮件合并”有更多控制。该MailMerge.FieldMergingCallback属性允许您遇到任何合并域时自定义邮件合并。MailMerge.FieldMergingCallback接受实现IFieldMergingCallback.FieldMerging和IFieldMergingCallback.ImageFieldMerging方法的类。

    下面的代码示例演示如何自定义“邮件合并”操作并将格式应用于此模板中的单元格。

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_MailMergeAndReporting(); 
    Document doc = new Document(dataDir + "MailMerge.AlternatingRows.doc");
    
    // Add a handler for the MergeField event.
    doc.MailMerge.FieldMergingCallback = new HandleMergeFieldAlternatingRows();
    
    // Execute mail merge with regions.
    DataTable dataTable = GetSuppliersDataTable();
    doc.MailMerge.ExecuteWithRegions(dataTable);
    dataDir = dataDir + "MailMerge.AlternatingRows_out.doc";
    doc.Save(dataDir);

    以下是HandleMergeFieldAlternatingRows类的实现。

    private class HandleMergeFieldAlternatingRows : IFieldMergingCallback
    {
        // Called for every merge field encountered in the document.
        /// We can either return some data to the mail merge engine or do something
        /// Else with the document. In this case we modify cell formatting.
        ///void IFieldMergingCallback.FieldMerging(FieldMergingArgs e)
        {
            if (mBuilder == null)
                mBuilder = new DocumentBuilder(e.Document);
    
            // This way we catch the beginning of a new row.
            if (e.FieldName.Equals("CompanyName"))
            {
                // Select the color depending on whether the row number is even or odd.
                Color rowColor;
                if (IsOdd(mRowIdx))
                    rowColor = Color.FromArgb(213, 227, 235);
                else
                    rowColor = Color.FromArgb(242, 242, 242);
    
                // There is no way to set cell properties for the whole row at the moment,
                // So we have to iterate over all cells in the row.
                for (int colIdx = 0; colIdx < 4; colIdx++) { mBuilder.MoveToCell(0, mRowIdx, colIdx, 0); mBuilder.CellFormat.Shading.BackgroundPatternColor = rowColor; } mRowIdx++; } } void IFieldMergingCallback.ImageFieldMerging(ImageFieldMergingArgs args) { // Do nothing. } private DocumentBuilder mBuilder; private int mRowIdx; } // Returns true if the value is odd; false if the value is even.
    ///private static bool IsOdd(int value)
    {
        // The code is a bit complex, but otherwise automatic conversion to VB does not work.
        return ((value / 2) * 2).Equals(value);
    }      
    // Create DataTable and fill it with data.
    /// In real life this DataTable should be filled from a database.
    ///private static DataTable GetSuppliersDataTable()
    {
        DataTable dataTable = new DataTable("Suppliers");
        dataTable.Columns.Add("CompanyName");
        dataTable.Columns.Add("ContactName");
        for (int i = 0; i < 10; i++) { DataRow datarow = dataTable.NewRow(); dataTable.Rows.Add(datarow); datarow[0] = "Company " + i.ToString(); datarow[1] = "Contact " + i.ToString(); } return dataTable; }

    使用C#将邮件与区域合并

    在某些情况下,您需要填充并重复Word文档中的特定区域。在这种情况下,可以对区域使用邮件合并。若要创建区域,您需要指定区域的开始和结束,然后Mail Megre将为数据源中的每个记录重复该区域。例如,以下模板包含两个区域,分别是Orders和OrderDetails,它们具有合并字段«TableStart:Orders»,«TableEnd:Orders»和«TableStart:OrderDetails»,«TableEnd:OrderDetails»。

    Word处理控件Aspose.Words功能演示:使用C#或VB.NET在Word文档中进行邮件合并

    以下是在上述模板的区域上执行Mail Megre的代码示例。

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_MailMergeAndReporting();
    string fileName = "MailMerge.ExecuteWithRegions.doc";
    Document doc = new Document(dataDir + fileName);
     
    // Use DataTable as a data source.
    int orderId = 10444;
    DataTable orderTable = GetTestOrder(orderId);
    doc.MailMerge.ExecuteWithRegions(orderTable);
     
    // Instead of using DataTable, you can create a DataView for custom sort or filter and then mail merge.
    DataView orderDetailsView = new DataView(GetTestOrderDetails(orderId));
    orderDetailsView.Sort = "ExtendedPrice DESC";
     
    // Execute the mail merge operation.
    doc.MailMerge.ExecuteWithRegions(orderDetailsView);
     
    // Save the merged document.
    dataDir = dataDir + RunExamples.GetOutputFilePath(fileName);
    doc.Save(dataDir);

    以下是从数据库读取数据的方法。

    private static DataTable GetTestOrder(int orderId)
    {
        DataTable table = ExecuteDataTable(string.Format(
            "SELECT * FROM AsposeWordOrders WHERE OrderId = {0}", orderId));
        table.TableName = "Orders";
        return table;
    }
    private static DataTable GetTestOrderDetails(int orderId)
    {
        DataTable table = ExecuteDataTable(string.Format(
            "SELECT * FROM AsposeWordOrderDetails WHERE OrderId = {0} ORDER BY ProductID", orderId));
        table.TableName = "OrderDetails";
        return table;
    }
    // Utility function that creates a connection, command, 
    /// Executes the command and return the result in a DataTable.
    ///private static DataTable ExecuteDataTable(string commandText)
    {
        // Open the database connection.
        string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
            RunExamples.GetDataDir_Database() + "Northwind.mdb";
        OleDbConnection conn = new OleDbConnection(connString);
        conn.Open();
    
        // Create and execute a command.
        OleDbCommand cmd = new OleDbCommand(commandText, conn);
        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
        DataTable table = new DataTable();
        da.Fill(table);
    
        // Close the database.
        conn.Close();
    
        return table;
    }

    嵌套邮件合并区域

    通常,我们在数据源中拥有的数据以关系的形式出现。例如,表“ Order”将与“ OrderDetails”具有一对多关系,该关系将保留订单中的项目记录。为了处理此类父子关系,使用了嵌套的邮件合并。以下是非常适合这种情况的示例发票模板。

    Word处理控件Aspose.Words功能演示:使用C#或VB.NET在Word文档中进行邮件合并

    以下是将用于嵌套邮件合并的示例XML数据源。

    而此XML 的OrderSchema.xsd为:

    下面的代码示例用于使用C#执行嵌套的邮件合并。

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_MailMergeAndReporting(); 
                
    // Create the Dataset and read the XML.
    DataSet pizzaDs = new DataSet();
    
    // Note: The Datatable.TableNames and the DataSet.Relations are defined implicitly by .NET through ReadXml.
    // To see examples of how to set up relations manually check the corresponding documentation of this sample
    pizzaDs.ReadXml(dataDir + "CustomerData.xml");
    
    string fileName = "Invoice Template.doc";
    // Open the template document.
    Document doc = new Document(dataDir + fileName);
    
    // Trim trailing and leading whitespaces mail merge values
    doc.MailMerge.TrimWhitespaces = false;
    
    // Execute the nested mail merge with regions
    doc.MailMerge.ExecuteWithRegions(pizzaDs);
    
    dataDir = dataDir + RunExamples.GetOutputFilePath(fileName);
    // Save the output to file
    doc.Save(dataDir);

    邮件合并后的Word文档。下面是执行邮件合并后生成的Word文档的第一页。

    Word处理控件Aspose.Words功能演示:使用C#或VB.NET在Word文档中进行邮件合并


    如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183),我们很高兴为您提供查询和咨询。

    展开全文
  • 当程序运行时,使OLE控件处于编辑状态,可以正常输入文字,但无法进行复制粘贴,是怎么回事??? [img=https://img-bbs.csdn.net/upload/201504/01/1427854417_364027.jpg][/img]
  • 快捷键Ctrl+Shift+F9 首先,Ctrl+A全选文章或者用鼠标拖动的方法选中部分文中;批量删除word文档中的超级链接然后,同时按下键盘上的Ctrl+...第二步:在已粘贴网页内容的word文档里按Alt+F11,弹出的VB(Microsoft...

    快捷键Ctrl+Shift+F9

    首先,Ctrl+A全选文章或者用鼠标拖动的方法选中部分文中;

    批量删除word文档中的超级链接
    然后,同时按下键盘上的Ctrl+Shift+F9。

    效果就出现了!


    宏方法:

    第一步:打开如下word页面,并“复制”“粘切”相应的图片文档

    第二步:在已粘贴网页内容的word文档里按Alt+F11,弹出的VB(Microsoft visualBasic..........)窗。。

    第三步:按F7打开代码窗口,

    第四步:在窗口中右键单击ThisDocument选择查看代码,然后粘贴如下代码:

    Sub 取消链接() For a = 1 To ThisDocument.Hyperlinks.Count ThisDocument.Hyperlinks(1).Delete Next End Sub

    第五步:粘贴后按F5运行。然后删除这个宏回到word你会发现所有的超级链接都消失了。

    http://jingyan.baidu.com/article/1612d5007748dfe20e1eeef8.html

     



    一个笨方法,用快捷键ctrl+Y 

    首先,进行一次取消超链接的操作。选择一个图片,右键点击取消超链接。然后,选择其他图片按ctrl+Y,重复以上操作。只能依次修改,无法选中多个图。 虽然也很繁琐,但比起每张都用右键取消要方便多了。

     

    展开全文
  • 平常在工作的时候,经常需要...复制Word内容如果像小编以前一样不懂简便的方法,那么第一步肯定是打开Word文档,把需要的内容一个一个复制。2.粘贴到PPT复制完成后打开一个新的PPT,创建新幻灯片,然后把Word复制...

    平常在工作的时候,经常需要进行一些文件格式上的转换,特别是做PPT的时候,我们经常要从Word里来生成PPT,那么Word转PPT,有什么小妙招吗?当然有!今天就来跟大家分享三个好用的小方法。

    b88547b112060939bd2cfc81600f47ea.png

    一、直接复制粘贴

    1.复制Word内容

    如果像小编以前一样不懂简便的方法,那么第一步肯定是打开Word文档,把需要的内容一个一个复制。

    f0ebc15e2663112b3721a0defafb7fea.png

    2.粘贴到PPT

    复制完成后打开一个新的PPT,创建新幻灯片,然后把Word复制的内容再粘贴到PPT里,然后再开始进行排版制作。

    5375f2f12c927d6c4b0d9af076628273.png

    这是一个傻瓜化的方法,如果只有两三页的内容还可以勉强用,但如果是100页的Word文档转PPT呢?别急,看下下面的方法。

    二、Word自带功能

    1.自定义功能区

    首先我们可以点击【文件】,找到【选项】内容,进入【快速访问工具栏】-【不在功能区的命令】,然后找到【发送到Microsoft PowerPoint】,把转换的图标先添加到工具栏上。

    93863cc9eb36f6ee565e1974ab6be580.png

    2.设置大纲

    接下来需要设置大纲,也就是给你的Word内容进行适当的分级,点击【视图】-【大纲】,可以选择1.2级文本,根据需要进行设置和选择,设置完成即可。

    0ce157754fc8a1b0a437a43e1d951eb0.gif

    3.快捷转换

    把大纲都完成设置之后,我们只需要点击刚才添加的小图标,就是在快捷工具栏上的图标,就可以直接把Word转换成PPT出来了!是不是很方便呢!

    23ef05174e80fd3d3ab4f99d9f30bb8a.gif

    三、软件转换

    还有第三个方法,我们可以通过软件转换的形式来完成我们的Word转PPT操作,亲测了8款软件后,选出了一款最优秀的送给你!

    1.迅捷PDF转换器介绍

    我们使用到的是迅捷PDF转换器,这是一个专注于PDF与其他文件格式的转换器,一键即可完成,支持批量转换,用起来很方便很好用,能支持的格式也很多,一般的文件格式都可以哦!

    8698306a0259caf28a5051871afd670d.png

    2.Word转PPT具体操作

    (1)点击进入软件,选择【文件转PPT】选项,然后导入我们需要的文件,点击开始转换。

    ddad65a063c8219f19ea335a9c0181f7.png

    (2)稍等片刻之后,文件就可以转换成功了,这时候只需要点击【打开】按钮就可以直接查看转换后的文件了。

    bd63cff435ffdecb7529aa9238745a3c.png

    好啦~关于Word转PPT的方法就介绍到这里了,希望可以对你平时的工作有所帮助~如果你还有别的更简便的方法,欢迎在下方留言告诉我哦!期待你的留言!

    e6132436c78c8ce42cb1bb7ec3d8c46f.gif
    展开全文
  • word文档按页拆分若干文档

    千次阅读 2011-12-27 13:56:22
    首先打开要拆分的文档,然后按alt+f11(打开vb)在这里插入,模块,然后复制下列代码: Option Explicit Sub SplitPagesAsDocuments() Dim oSrcDoc As Document, oNewDoc As Document Dim strSrcName As String, ...
  • 若想自己所做的文档不能被复制,更不能被修改,需要在初始创建这个文件时,在vba里对应用于该文件的模板加入相关代码. 破解的方法是将它另存为网页文件再复制. 如果通过设置修改权限的办法,则会弹出输入密码的...
  • 在如下所示的网页中,复制 粘贴到word文档,换行还是有的  再复制VB6.0中还是可用的
  • VB 宏 病 毒 实 验

    2011-03-15 18:22:33
    Word宏是指能组织到一起为独立命令使用的一系列Word指令;自我复制,感染word公用模板和当前文档
  • vb设计一个简易编辑器,能够进行文本操作(如复制、粘贴等)功能。 利用RichTextBox控件,编写一个类似Word字处理软件的应用程序。应用程序界面为单文档或多文档界面,包括菜单和工具栏。具体功能有:设置字体大小...
  • word中代码高亮加行号

    千次阅读 2016-10-14 13:06:33
    但是我们在自己的文档中记录笔记写书籍的时候,word文档中的代码却不尽人意,所以通过查找资料,发现有大神已经早就解决好了word中代码排版的问题! 如下图的样式: 那么如何来实现word中的代码高亮加行号,这就是...
  • 解决复制VS2010代码到Word文档时出现乱码的问题,两种代码VB.NET和C#。有需要的朋友可以看一下。
  • C#从PDF文档中提取文本

    千次阅读 2018-10-18 16:00:06
    那我们若想要从PDF中获取文字内容的话,首先会想到复制功能,但是一次只能复制少量的文本内容,而且复制后重新输入到word或者txt文档中后排版可能会乱。因此本文将详细介绍如何提取PDF文档中文本的解决方案,该方案...
  • word 无格式粘贴

    千次阅读 2010-05-04 11:28:00
    复制好文字后,在粘贴时,选择"编辑"菜单中的"选择性粘贴",在其中选择"无格式文本"即可....3. 在打开的VB编辑器的左侧资源窗口中选中【Normal】工程文档;4. 点击【插入】菜单中【模块】命令,插入
  • 当我们将一个网页另存为一个文本文件并将文本文件中的所有内容复制到Word2007中进行编辑时,有时会遇到大量的空格和空行,运用该宏按钮可以全部删除Word文档中的空格和空行(由于空行产生的复杂性,可能一次不能删除...
  • ├─Example132-近文档信息 ├─Example133-Ctrl&V的应用 ├─Example134-鼠标(移动,左键,右键) ├─Example135-注册表&资源应用 ├─Example137-函数(Replace,Split,Join,StrReverse,InStrRev)的使用 ├─Example...
  • 可以从excel、word文档等直接复制粘贴过来。 ★每次软件刚运行,点击一次初始化,然后就可以摇号了。 ★开始按钮旁边的文本框里输入本次摇号需要摇出的号码个数。(默认是1个)可以直接按回车或空格键 ★进行摇号...
  • 不需用到"comdlg32.ocx"(3KB) 26,clipbutton.ZIP 在我们使用 vb 的 code 编辑器时,其粘贴、复制、剪切按钮能随着当前的选择情况而进行适当的调整,本程序演示了类似的功能, 作者:jin(kenj@163.net)(3KB) ...
  • clpdcopy.ZIP 一个可以从剪贴版粘贴文件的程序(象Explore中的“复制”和“粘贴”一样)(4KB) 10,findfile.ZIP 利用递归方式实现对文件的查找操作(3KB) 11,vb52unix.ZIP 将VB格式文件转换为Unix...
  • 包含使用和开发接口文档,及Delphi、VB、VC++、C#.net、VB.net的demo。 ACReport简介 Anycell Report(简称ACReport)是一款中国式报表组件,是国内最早的基于表格,支持图文混排、公式和脚本的中国式报表工具之一。就...
  • 本DataGridView打印控件和.NET打印控件5.7版2014年11月2日修改完成,完全免费,在.NET2.0及以上环境下都可以使用(VB打印、C#打印都是可以的),有帮助文档与使用实例。 与上一版相比,控件5.7版的主要更改如下: 1...
  • 6、支持同一文档多种版面格式打印(类似于Word中的节的功能):对同一份文档,不同的页面可以设置不同的格式(纸张大小、纸张方向、页边距),只需要在新增一页时在NewPage方法中指定要使用的页面格式即可,使用...
  • 2021-01-15

    2021-01-15 15:10:38
    一、前期准备 下面是具体操作步骤。...D,双击该按钮,进入VB代码编写模式,将以下代码复制进去。 二、命令按钮的代码 Private Sub CommandButton1_Click() Application.ScreenUpdating = False Dim myPas As St
  • 【引言】拖放操作在电脑中很常用,例如我们经常复制文件就可以按住ctrl键不放,然后再拖到另外一个窗口中,或者,可以把一个WORD文档直接拖动到WORD窗口即可打开,以前我使用过VB,里面直接有OleDragDrop事件,进行...
  • TreeviewEditor是用VB6开发的一款Windows桌面程序,用户可以快速搭建树形结构,可以导出为Word文档。 支持节点的复制粘贴、节点的拖放。 下载地址:TreeviewEditor.rar 安装画面: 选择安装模式:只为我安装,...
  • Word、Excel、PowerPoint、WPS等编辑文档。  BMP、JPG、PNG、GIF等图片格式。  PDF、AIP、CEB、SEP等版式文件。  HTML网页文件 WEBOFFICE是标准的ACTIVEX组件,支持在应用开发平台中嵌入整合。 C/S平台:VB...

空空如也

空空如也

1 2 3 4
收藏数 64
精华内容 25
关键字:

vb复制word文档