gpt4 book ai didi

Ruby - WIN32OLE 函数创建

转载 作者:数据小太阳 更新时间:2023-10-29 08:41:22 24 4
gpt4 key购买 nike

我正在通过 ruby​​ 做一些单词自动化,但相对缺乏经验。我现在正在尝试使我的代码功能化,但我遇到了这个错误

NameError: undefined local variable or method `doc' for main:Object
from (irb):148:in `create_table'
from (irb):152
from C:/Ruby192/bin/irb:12:in `<main>'

这是我从我编写的示例代码中得到的

#Get the correct packages
require 'win32ole'

#setting up the Word
word = WIN32OLE.new('Word.Application')
#Shows the word Application
word.Visible = true
#Setting doc to the active document
doc = word.Documents.Add
doc = word.ActiveDocument

def create_table
doc.Tables.Add(word.Selection.Range, 4, 2) #Creates a table with 3 rows and 2 columns
doc.Tables(1).Borders.Enable = true
end

create_table

最佳答案

您的问题是,在您的 create_table 方法中,您引用了主作用域中的变量,但没有传递给该方法。这适用于您想要的:

require 'win32ole'

#setting up the Word
word = WIN32OLE.new('Word.Application')
#Shows the word Application
word.Visible = true
#Setting doc to the active document
doc = word.Documents.Add
doc = word.ActiveDocument

def create_table(d, w)
d.Tables.Add(w.Selection.Range, 4, 2)
d.Tables(1).Borders.Enable = true
end

create_table(doc, word)

请注意,它现在将 docword 的引用传递给函数。另外,顺便说一句,您正在创建一个包含 4 行和 2 列的表格。

关于Ruby - WIN32OLE 函数创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4395172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com